|
Presenting the CHGATR Command
Hey, Ted:
I had a similar problem to Jim's in "Wanted: Qshell Output in ASCII." Qshell was building EBCDIC files, but he wanted them in ASCII. In my case, a "Wintel" machine's FTP client was putting ASCII files in the Integrated File System, but I preferred EBCDIC files. I found a CL command that solved my problem.
I used the Change Attributes (CHGATR) command. This command, which was introduced in V5R1, can change the CCSID of a file. I used commands like the following to change files from CCSID 819 (the CCSID they were assigned when they were created during an FTP session) to 37 (US English):
CHGATR OBJ('/mydir/myfile.txt') ATR(*CCSID) VALUE(37)
I need to point out that CHGATR does not convert the data in the file to the new CCSID. In my case, I sent a second put command and everything was fine. Here is a portion of an illustrative script:
lcd /temp
cd /mydir
put empty.txt mynewfile.txt
quote rcmd CHGATR OBJ('mynewfile.txt') ATR(*CCSID) VALUE(37)
put myrealpcfile.txt mynewfile.txt
The empty.txt file is not really empty. I had keyed one x into it. Copying it to the IFS created a file with a code page of 819. Then I used the rcmd server command to change the CCSID. Last, I copied the real data to the IFS.
The other ways to change a file's CCSID that were presented in "Wanted: Qshell Output in ASCII" and "More Qshell Output in ASCII" are fine, but I wanted to mention this CL command.
--Ken
Thanks for bringing CHGATR to our command. As you point out, it is a relatively new command.
You can use CHGATR against a single file or a group of files whose names match a pattern. If you specify SUBTREE(*YES), the system will also change objects in subdirectories.
In addition to changing a file's CCSID, CHGATR can change the following properties.
|
Property
|
Description
|
|
*READONLY
|
Whether a file can be changed or deleted.
|
|
*HIDDEN
|
Whether a file is displayed in an ordinary directory list.
|
|
*PCSYSTEM
|
Whether a file is considered as belonging to a PC.
|
|
*PCARCHIVE
|
Whether a file has been changed since the last save by a PC.
|
|
*SYSARCHIVE
|
Whether a file has been changed since an iSeries save.
|
|
*ALWCKPWRT
|
Whether a stream file can be shared during save-while-active checkpoint processing.
|
|
*USECOUNT
|
The number of days an object has been used.
|
|
*DISKSTGOPT
|
How the system allocates auxiliary storage for an object.
|
|
*MAINSTGOPT
|
How the system allocates main storage for an object.
|
Be aware that not all options are available in every file system.
To learn more about CHGATR, go to the IBM iSeries Infocenter.
--Ted
|