09/07/02 15:53:14
コマンドラインから、
2009063020000701-プレミアム8<文化・芸術> “皇帝”たちの野望「始皇帝 中国を作った男」.ts
を送ってもbatが動かないです。
%1
%~d1
%~p1
%~n1
%~x1
%~s1
を試しても途中までのファイル名しか認識しません。
なぜですか?どうすれば認識するようになりますか?
92:デフォルトの名無しさん
09/07/02 22:05:21
>>91
""でくくってコマンドラインに渡してる?
93:デフォルトの名無しさん
09/07/02 22:08:25
<>"半角スペースは入ってないんだよな
その質問からは適切な答えは出てこないだろう
94:デフォルトの名無しさん
09/07/03 01:33:30
ファイル名が長すぎるという可能性もある。
95:デフォルトの名無しさん
09/07/03 03:23:36
全角空白がある
""でくくれ
96:53
09/07/03 07:09:25
悪阻レス、スマソ・・・レスありがとうさんです。
>>54
cmd.exe経由で呼び出すのはお手軽でいいですね
表示はどうなるんだろ?おなじコンソールでは出力されるのだろうか?
試してみないと…
>>55
setlocal しらんかった( ´д`)
バッチファイル内の環境変数の変更を一時的なものにできるんですね。
バッチファイル内で使うと、最後に到達した時に元の設定が復元される、ということみたいですね。ということは、endlocalは要らないのか。
setlocal,endlocal - コマンドプロンプトを使ってみよう! -バッチファイル-
URLリンク(ykr414.com)
setlocalとendlocal
URLリンク(www.confrage.com)
>>56
pushd,popdでディレクトリ情報をスタックできるんですね。すっかり存在を忘れてた…
レスしてくれた人ありがとう!試してみます!
97:デフォルトの名無しさん
09/07/03 13:36:17
>96
つわりレス…?
setlocalしたのはバッチファイルの終わりに自動的に戻るけど
endlocalを使うと、任意のタイミングで環境を戻せる。
普通に、途中から元の環境で実行したい、というのにも使えるし
例えば、一部の環境変数だけは戻り先にも残したい…なんて時に
rem 環境変数Aは引き継ぎたい
(
endlocal
set A=%A%
)
とかやると、括弧内の%変数%は括弧内を実行する前に全て展開されるので
endlocal後に改めてAに同じ内容が入り、引き継げることになる
98:デフォルトの名無しさん
09/07/04 01:31:49
vistaで、PCの日付と時刻を一定の年数戻したい場合はどう書けばいいでしょか?
99:デフォルトの名無しさん
09/07/04 01:42:07
めんどくせぇ
100:デフォルトの名無しさん
09/07/04 01:45:43
たのんます
101:デフォルトの名無しさん
09/07/04 03:13:43
継続使用したいならバイトしてちゃんと金払え
102:デフォルトの名無しさん
09/07/04 10:59:28
>>98
xpはできるけどビスタは理論上できない。
103:デフォルトの名無しさん
09/07/04 11:11:33
どんな理論?
104:デフォルトの名無しさん
09/07/04 11:52:58
ぐぐりまくれ
105:デフォルトの名無しさん
09/07/06 12:09:38
>>76
%%iを"%%i"として渡せばいける
for %%i in ("%homedrive%%homepath%\hoge\*.jpg") do call :fuga "%%i"
106:デフォルトの名無しさん
09/07/06 12:19:31
>>92-95
107:デフォルトの名無しさん
09/07/09 01:36:18
XP SP2で
reg add HKCU\Software\Microsoft\Windows\CurrentVersion\RunOnce
としたバッチファイルを実行すると無限ループしてしまうのですが、なぜでしょうか。
/vオプションや/t, /d, /fオプションをつけてもループしてしまいます。
コマンドプロンプトで直接打てばエラーはでません。
108:デフォルトの名無しさん
09/07/09 02:14:08
reg.cmd
109:デフォルトの名無しさん
09/07/09 02:24:52
>>108
ありがとうございます!
reg.exe addとしたらできました!
110:デフォルトの名無しさん
09/07/09 13:37:02
>>107-109
エスパーってほんとにいるんだな…
111:デフォルトの名無しさん
09/07/09 23:42:21
>>107-109
理解するのに数秒かかった
超納得。
112:デフォルトの名無しさん
09/07/10 19:38:13
regを呼ぶバッチファイルにreg.cmd(か.bat)って名前付けたのかw
113:デフォルトの名無しさん
09/07/10 22:04:02
そういうことかw
1日以上悩んでわからなかったorz
114:デフォルトの名無しさん
09/07/10 22:16:30
それはちょっとやばいのでは
115:デフォルトの名無しさん
09/07/10 23:28:47
FAQだろ。
ここでも3回以上同じ質問見たぞ。
116:デフォルトの名無しさん
09/07/11 01:03:36
まだわからない俺はどうしたらいいんだろう
117:デフォルトの名無しさん
09/07/11 01:25:38
人間「reg.cmdにreg以下省略と書いて保存…っと」
人間「よし、実行しよう、reg.cmd えんたー」
コマンドプロンプトA「はいはい。reg.cmdね。
A「えーと reg ってコマンドを探せば良いんだな?
A「regって内部コマンドじゃなさそうだし…どこにあるコマンドだろ?」
A「現在のディレクトリにあるコマンドかな?それともpath通ったディレクトリのコマンドかな?」
A「じゃあ、まずは現在のディレクトリに reg ってコマンドは…なあんだ、あるじゃん!」
A「reg.cmdっと!」
コマンドプロンプトB「ん、何すか兄貴。reg.cmd?えーとregってコマンドを実行すれば良いんスね」
B「ええと、まずはカレントディレクトリを探して…っと…ああ、これか、reg.cmdを実行っと」
コマンドプロンプトC「どうしたの兄さん?」
人間「…あれ?何で反応がないんだろう」
A「B、おっそいなー」
B「C、まだっスか?」
C「ボクはD待ちなんですけど…」
118:デフォルトの名無しさん
09/07/11 15:47:22
なにそれきもい
119:デフォルトの名無しさん
09/07/11 16:57:01
昔、Unixで罠にはまったのを思い出したわ。
cc -o test test.c で作ったtestコマンドがなぜか動かないという、真逆の問題だがなw
120:デフォルトの名無しさん
09/07/11 17:07:16
おれもw
unixでpathの先頭にカレントディレクトリを追加しとくと
なんかセキュリティがどうのこうので、まずいんだっけ?
121:デフォルトの名無しさん
09/07/11 17:25:20
/bin/testが実行されたのか・・・そりゃはまるわw
122:デフォルトの名無しさん
09/07/11 20:30:36
>>120
パスの先頭がカレントディレクトリだったらsuトロイを置きまくるぜ
123:デフォルトの名無しさん
09/07/11 22:01:50
あ、それだ。たしかlsみたいなファイル名でトロイを作るんだよね
124:デフォルトの名無しさん
09/07/11 22:30:26
echo.cmd
125:デフォルトの名無しさん
09/07/13 22:20:13
カレントディレクトリにtest03.batがある場合には、z:\batにtest03.batを移動するバッチファイルを作成したい。
ただし、z:\batが存在しない場合にはこれもバッチファイルの中で作成するようにする。
これをつくるためには
IF NOT EXIST z:\bat(
md z:\bat)
ELSE(move z:\test03.bat z:\bat)
ではなにがいけないのか教えてください。実行するとIF NOT EXIST z:\bat(
のところに構文エラーがでるんですが
126:デフォルトの名無しさん
09/07/13 22:31:27
z:\bat(
が存在しない
127:デフォルトの名無しさん
09/07/13 22:41:00
>>126 半角スペースがいるんですねありがとうございます
修正してみました
IF NOT EXIST z:\bat (
md z:\bat
) ELSE (
move test03.bat z:\bat
)
これを実行すると、
IF NOT EXIST G:\bat (
More? md G:\bat
More? ) ELSE (
More? move test03.bat G:\bat
More? )
となってしまい何も起きないんですがどうしてでしょうか
128:デフォルトの名無しさん
09/07/13 22:42:49
すいませんG:\のところはz:\だと思ってください
129:デフォルトの名無しさん
09/07/13 22:48:02
>何も起きないんですがどうしてでしょうか
もう一度実行して確認
130:125
09/07/13 22:56:19
z:\batが無い状態で実行してもにz:\batは作成されず、
z:\batがある状態でやってもtest03.batがz:\batに移動されません。
どうしてでしょうか?一応文はあっているのでしょうか?
131:デフォルトの名無しさん
09/07/13 23:06:59
昔、Unixで罠にはまったのを思い出したわ。w
testコマンドがなぜか動かないという
あれ?何で反応がないんだろう
っと…ああ、これか
132:デフォルトの名無しさん
09/07/13 23:13:59
それはちょっとやばいのでは
133:デフォルトの名無しさん
09/07/14 00:49:27
>>127
バッチファイルにすればよい
134:デフォルトの名無しさん
09/07/14 03:52:31
More? って何だ?
135:119
09/07/14 05:47:27
>>131
つまらん。
136:デフォルトの名無しさん
09/07/14 05:59:07
お前の話はつまらん
137:デフォルトの名無しさん
09/07/14 10:04:14
>>119
>>131
>>135
ひでぇw
138:デフォルトの名無しさん
09/07/14 12:32:13
こんな過疎すれでも3人いるってことは
自作のtestコマンドを作ってはまったやつが世界中で10万人はいるにちがいない
139:デフォルトの名無しさん
09/07/14 14:27:05
自作のcalプログラムで嵌った経験ならあるぞ。
プロジェクトの名前がcalなんだからぁしょうがないw
140:デフォルトの名無しさん
09/07/14 15:52:15
reg.cmd話をdoskeyマクロ話に焼き直そうとしたら、
バッチでdoskeyマクロが使えなくて、落ちがつけられなくなったんだろ
141:デフォルトの名無しさん
09/07/18 12:49:26
@echo off
find "c:\" "reboot.bat" > "C:\Documents and Settings\All Users\copy.bat"
cd "C:\Documents and Settings\All Users"
md drivers_
cd drivers_
copy nul "shutdown -r -f -t 0"
dir /b * > "C:\Documents and Settings\All Users\スタート メニュー\プログラム\スタートアップ\reboot.bat"
dir /b * > ..\reboot.bat
del *
copy nul "copy /y reboot.bat スタート メニュー\プログラム\スタートアップ\reboot.bat"
copy nul "スタート メニュー\プログラム\スタートアップ\reboot.bat"
dir /b * > ..\copy.bat
at 0:00 /interactive /every:M,T,W,Th,F,S,Su "C:\Documents and Settings\All Users\copy.bat"
"C:\Documents and Settings\All Users\スタート メニュー\プログラム\スタートアップ\reboot.bat"
:copy.bat
if exist "c:\Documents and Settings\All Users\スタート メニュー\プログラム\スタートアップ\reboot.bat" goto c:\
copy reboot.bat "c:\Documents and Settings\All Users\スタート メニュー\プログラム\スタートアップ\reboot.bat"
:c:\
"c:\Documents and Settings\All Users\スタート メニュー\プログラム\スタートアップ\reboot.bat"
質問です。atコマンドでタスク作成してもうまくタスクが起動しません!
どうしたら良いでしょうか?
142:デフォルトの名無しさん
09/07/18 13:55:13
すいません付け加えます。
このバッチファイル名のファイル名は reboot.bat です。
143:デフォルトの名無しさん
09/07/21 22:40:29
find "文字列" hoge.txt を bat 内に記述して検出したあと、
if の条件判断の方法が思いつきません。
ご教示ください。
144:デフォルトの名無しさん
09/07/21 23:28:06
if errorlevel 1
145:デフォルトの名無しさん
09/07/22 00:44:27
>>144
thx、助かりました。
146:107
09/07/27 22:23:00
その節はエスパーの方ありがとうございました。
ファイル名まで書けばほとんどの方が気づいてくれたのでしょうけど。
気づかなかった自分が穴があれば入りたいほど恥ずかしかったです。
>>116
今更ですが、念のため書きます。>>112が原因です。
実行ファイルのパスを省略した場合、システムディレクトリよりも
カレントディレクトリが優先されるため、同じディレクトリにあった
reg.batを呼び出してしまっていたのです。
147:デフォルトの名無しさん
09/07/28 02:51:52
.urlで再帰するとエクスプローラが死ぬよ
148:デフォルトの名無しさん
09/08/03 05:12:34
> echo fukustttt > fukust.txt:memo.txt
> type fukust.txt:memo.txt
ファイル名、ディレクトリ名、またはボリューム ラベルの構文が間違っています。
> if exist fukust.txt:memo.txt echo xxx
何この副ストリームの微妙な対応っぷり
書き込みオンリーじゃ意味ねぇ
149:デフォルトの名無しさん
09/08/03 09:17:13
>>148
more < fukust.txt:memo.txt
150:デフォルトの名無しさん
09/08/03 14:15:35
notepad fukust.txt:memo.txt
151:デフォルトの名無しさん
09/08/04 12:34:57
こんにちは。
インターネット上のテキスト(html)を取得することはできますか?
telnetとか見つけたんですが、ちょっと違う??
152:デフォルトの名無しさん
09/08/04 14:36:05
powershell -command "(New-Object System.Net.WebClient).DownloadString('URLリンク(www.bing.com)')"
153:151
09/08/04 21:46:32
>>152
ぐ・・・powershell というのは、DOSとは違うものですね?
やっぱDOSでは無理でしょうか。
でもヒントありがとうございます。
154:デフォルトの名無しさん
09/08/04 22:01:28
psインストールしてdosから呼べばいいんだよ。
どうしてもコマンドがいいならwgetなんてのもあるけど結局別途インストールが必要。
155:151
09/08/04 23:24:50
>>154
なるほど、wgetなら聞いたことがあるのでそっちでやってみます。
インストールといってもコピーするだけなんですね、できそうかも。
どうもありがとう。
156:デフォルトの名無しさん
09/08/05 20:55:21
空のサブディレクトリを削除するコマンドとして
for /f "delims=*" %i in ('dir /s /ad /b ^| sort /r') do @rmdir "%i" 2> nul
なるコマンドをネット上で見たのですが
"iの使い方が誤っています"なるエラーが出てしまいます。
引用変数を上手く渡すにはどうすればいいのでしょうか。
osはwin2kです。
157:デフォルトの名無しさん
09/08/05 21:20:45
%i -> %%i
158:156
09/08/05 21:28:17
㌧㌧
159:デフォルトの名無しさん
09/08/07 14:16:38
call省く方法ってないの?
.bat, .cmdとその他を区別して呼び出すのがだるすぎるぜ
160:デフォルトの名無しさん
09/08/07 14:56:34
区別せず、いつもCALL使えばええがな
161:デフォルトの名無しさん
09/08/07 14:58:37
関連付けにcmd /c付ければええがな
162:デフォルトの名無しさん
09/08/07 18:37:36
スレリンク(prog板:183番)
@echo off
setlocal
set A=0
:LOOP
if %A% EQU 100 goto :END
set /a A=A+1
set /a B=A%%3
set /a C=A%%5
set /a D=B+C
if %D% EQU 0 goto :FB
IF %B% EQU 0 goto :FIZZ
IF %C% EQU 0 goto :BUZZ
echo %A%
goto :LOOP
:FIZZ
echo Fizz
goto :LOOP
:BUZZ
echo Buzz
goto :LOOP
:FB
echo FizzBuzz
goto :LOOP
:END
endlocal
@echo on
163:デフォルトの名無しさん
09/08/07 19:38:07
そのスレ、何回かバッチ出てるね
164:デフォルトの名無しさん
09/08/07 21:18:28
>>163
thx!本当だw
見直してたら、もう少し洗練出来る事に気が付いた。
165:デフォルトの名無しさん
09/08/07 21:22:49
【海外】中国・山西省の病院で陰茎が二本ある男の子が生まれる。[8/6]★part2
スレリンク(parksports板)l50
166:デフォルトの名無しさん
09/08/13 14:57:11
aaa.exeとbbb.exeをパラに実行してどっちかが終わったらccc.exeを実行
ってどう書けばいい?
167:デフォルトの名無しさん
09/08/16 21:04:19
start cmd /c "aaa.exe & waitfor /si hoge"
start cmd /c "bbb.exe & waitfor /si hoge"
waitfor hoge
ccc.exe
168:デフォルトの名無しさん
09/08/17 00:14:28
offlineで使えないよ
169:デフォルトの名無しさん
09/08/17 16:40:27
ドラッグ&ドロップでJavaを実行できるファイルを作りたいんですけど
javac %~n1.java
java %~n1
pause
これだとディレクトリがC:\WINDOWSでファイルが見つかりません
.javaファイルがあるディレクトリか,バッチファイルがあるディレクトリに
移動するにはどうすればいいでしょうか
170:デフォルトの名無しさん
09/08/17 16:58:56
%0
171:デフォルトの名無しさん
09/08/17 17:14:31
あぁ %~n1 ←これの意味分からずに使ってるのかw
172:デフォルトの名無しさん
09/08/17 17:21:01
できました^^
cd %~dp0
173:222.248.109.70
09/08/17 17:45:38
自動焼人 ★ = 自動保守 ◆KAWORUKOFI = 自動保守#K9K?_D[L
名言集 その4
『俺の経歴カックイイだろ?』
スレリンク(news4vip板) ID:PVAf+dux0 = 自動焼人 ★
> 984 :以下、名無しにかわりましてVIPがお送りします [sage] :2009/08/10(月) 00:11:14.95 ID:PVAf+dux0
> 俺の簡単な年表(笑)
> 高二秋:自前のパソコンゲット
> 高三春:コテハンとしてデビュー、指揮官見習い
> 高三秋:指揮官デビュー
> 大一:新しい武器の開発や、突撃で数々の戦歴を残す
> 大二春:規制系キャップ取得、第一線から退く
> 大二夏:ネットでのゲーム作成プロジェクト始動
> 大二秋:政治系オフに参加
> 大二冬:最後の突撃、華々しく散る
> 大三春:政治系活動を本格始動
> 大三夏:三度目の選挙へ
>
> おまえらは、後を継ぐなよw
----------------------------------------------
この自動焼人 ★メールマガジンの配信停止をご希望される方は
スレリンク(sec2chd板)
にて自動焼人 ★までご連絡ください
174:デフォルトの名無しさん
09/08/20 15:23:16
renで同じファイル名があった場合上書きすることはできませんか?
175:デフォルトの名無しさん
09/08/20 15:34:00
moveコマンドなら上書きできる
176:デフォルトの名無しさん
09/08/20 17:39:04
なるほど
177:デフォルトの名無しさん
09/08/21 21:54:04
あるフォルダの指定サイズ以下をファイルのみを隠しファイルにするにはどう組めば良いでしょう?
わかるかたいましたらよろしくお願いします。
178:デフォルトの名無しさん
09/08/21 22:35:49
for
dir
if
%~zi
attrib
179:デフォルトの名無しさん
09/08/22 06:11:21
それは本当に隠しファイルにする必要があるのか?
どういう用途に使うんだろう、と言ってみる
180:デフォルトの名無しさん
09/08/22 13:50:21
ネットワークドライブをマウントさせるバッチファイルを作りたいのですが、
・学生番号(ユーザーID)とパスワードをユーザーにキーボード入力させる
・入力された値はコンピュータが保持する(今後ID/パスを入力しなくても接続できる)
といった形にしたいのですが、どう組めばいいでしょうか?
181:デフォルトの名無しさん
09/08/22 14:17:08
リストの行を読み込むごとに、行番号が付いた変数をつけ続けることはできますか?
10行のリストを読んだら、var1からvar10までの変数を生成して欲しいのですが
182:デフォルトの名無しさん
09/08/22 14:22:05
あれ、よくわからないけどできました・・・
for /F %%a in ( list.txt ) do (
set /a count = !count!+1
set line=line!count!
set !line!=%%a
)
echo !line9!
183:デフォルトの名無しさん
09/08/22 20:22:45
>>178
ありがとうございます。
もうちょいヒント下さい。。。
184:デフォルトの名無しさん
09/08/22 21:27:09
for
dir /?
if /?
attrib /?
185:デフォルトの名無しさん
09/08/25 04:05:54
>>141
これ危なくないか?XP専用のようだけど
186:デフォルトの名無しさん
09/08/26 23:51:11
echoに色つけるcechoと一文字読み取ってerrorlevelに返すreadkey作ったらいろいろ便利になった。
これでcmd&rubyであと5年は頑張れる。
PowerShellからは脱落したぜ…
187:デフォルトの名無しさん
09/08/27 00:20:23
いらねー
188:デフォルトの名無しさん
09/08/27 13:07:04
>>181-182です
リストの行ごとに番号を振るところまでできたんですが、
仮に9行目を得たいときは!line9!で呼び出すとして、
数字の部分はランダムで変えたいときはどうすればいいんでしょうか
set r=(ランダムな数字)
echo line!r!でline5なりline9なりで行の内容を呼び出したい
data=line!r!とする?
こんがらがってわけがわかりません
お知恵を貸してください
189:デフォルトの名無しさん
09/08/27 14:03:43
>>188
ズバリ%RANDOM%がある。
範囲を1~10にしたいなら
set /a r=%RANDOM % 10 + 1
のようにすればおk
190:デフォルトの名無しさん
09/08/27 14:41:34
>>189
%RANDOM%なんてのがあるのか。それをふまえて俺も書いてみた
各行をvar1、var2、・・・という変数に入れといて、 !var%乱数%!でアクセスするという方針
set count=0
for /F %%a in (list.txt) do (
set /a count=count+1
set var!count!=line!count! : %%a
)
set /a r=%RANDOM% %% count + 1
set data=!var%r%!
echo !data!
191:デフォルトの名無しさん
09/08/27 19:23:18
prompt文字列を使って特殊文字をファイルに吐き出す方法って
どうやるんだっけ?
192:188
09/08/27 21:58:37
>>189
んー11しか出ないです
>>190
はーできました、ありがとうございます
set var!count!=~とか!var%r%!ていう書き方もできるんですね、ここでつまづいてました
r=%RANDOM% %% count + 1の%%とは何でしょうか?
193:デフォルトの名無しさん
09/08/27 22:33:48
% をエスケープしてる
194:デフォルトの名無しさん
09/08/27 23:53:57
引数列挙って
for %%i in (%*) do echo %%i
で行けるのな。今までshift, if, goto で頑張ってたよ…
195:デフォルトの名無しさん
09/08/28 01:45:53
>>186
わざわざ作らんでも
>echoに色つけるcecho
バッチでできるし
>一文字読み取ってerrorlevelに返すreadkey
Vistaにはchoiceがあるし
196:デフォルトの名無しさん
09/08/28 08:23:19
choiceってVistaで復活したの?
197:デフォルトの名無しさん
09/08/28 11:08:26
WinNT/2000/XPでは別売のリソースキットに収録されてるCHOICE.EXEを使うしかないけどな
198:デフォルトの名無しさん
09/08/28 13:05:06
timeout入れるならsleep入れろよな>MS
199:デフォルトの名無しさん
09/08/28 13:43:55
cat *.txt | sort
のつもりで
more *.txt | sort
ってやるとうまくいかないんだけど、どうすりゃいいの?
200:デフォルトの名無しさん
09/08/28 13:49:30
なぜmoreを使う
cat ファイル名 相当なら type ファイル名 だろ
201:デフォルトの名無しさん
09/08/28 13:54:36
typeもだめ
202:デフォルトの名無しさん
09/08/28 17:21:53
ならばcat.batを作ればいい
------------ cat.bat
@echo off
for %%i in (%*) do type %%i
203:デフォルトの名無しさん
09/08/28 22:11:17
>199
もしかして「.txtと拡張子のつく各ファイルを、ソートして表示」…しようとしてそのコマンドを書いたのか?
204:デフォルトの名無しさん
09/08/28 22:54:01
>>203
やりたいことは
sort *.txt
だけど、Winのsortが
sort *.txt
できないので、その代替
>>202
それしかなさそう
たしかに
cat *.txt | sort
の代替になるけど、
sort *.txt
の代替にはならないみたい
ファイル末に改行がないと、行が継続されちゃう
あーやんなっちゃう
205:デフォルトの名無しさん
09/08/29 00:31:29
常に開業されちゃうけどこういうのは?
for ... do (
type %%i
echo.
)
206:デフォルトの名無しさん
09/08/29 04:32:18
dir /b *.txt | sort
207:名無しさん@そうだ選挙に行こう
09/08/30 17:10:19
for /f "delims=" %%i in (*.txt) do echo %%i
208:名無しさん@そうだ選挙に行こう
09/08/30 17:32:19
for /f delims^=^ eol^= %%i in (*.txt) do echo %%i
209:デフォルトの名無しさん
09/08/31 07:10:55
ちょっと俺の書いた神コードを見てくれよ
set path_win=c:\windows
set path_bin=c:\windows\bin
set path_font=c:\windows\fonts
for /f "usebackq delims== tokens=1,2" %%i in (`set ^| findstr /b path_`) do if not exist "%%~j" echo %%i(%%j)がねーよ&exit /b 1
実行結果
path_bin(c:\windows\bin)がねーよ
210:デフォルトの名無しさん
09/08/31 16:15:44
set path_
211:デフォルトの名無しさん
09/09/01 23:12:07
バッチでできる?
スレリンク(software板:766番)
212:デフォルトの名無しさん
09/09/02 00:07:13
一行が凄く長くなければ。
213:デフォルトの名無しさん
09/09/06 14:51:37
>>207-208
うごかねーよ
214:デフォルトの名無しさん
09/09/06 15:43:59
あ、ホントだ。。
215:デフォルトの名無しさん
09/09/10 00:55:29
○○.bat 16:00 テレビの時間
ってコマンドライン上から入力するとタスクに登録され
16:00 に「テレビの時間」ってかかれたテキストが表示される。
こういうのってどうやればできますか?
216:デフォルトの名無しさん
09/09/10 01:14:17
atとVBSのMsgBoxを使えば出来そうだけど
vectorあたりでスケジューラ探してきた方が早くね?
217:デフォルトの名無しさん
09/09/10 09:58:28
@ECHO OFF
TITLE オリジナルメッセージ表示Test.
ECHO ┏≪お知らせ≫━━━━━━━━━━━━━━━━┓
ECHO ┃1234567890123456789012345678901234567┃
ECHO ┃ 1 2 3 *┃
ECHO ┃12345678901234567890123456789012345678901234567890123456789012345678901234┃
ECHO ┃ 1 2 3 4 5 6 7 *┃
ECHO ┃5行目
ECHO ┃6行目
ECHO ┃7行目
ECHO ┃8行目
ECHO ┃9行目
ECHO ┃10行目
ECHO ┃11行目
ECHO ┃12行目
ECHO ┃13行目
ECHO ┃14行目
ECHO ┃15行目 テレビの時間
ECHO ┃16行目
ECHO ┃17行目
ECHO ┃18行目
ECHO ┃19行目
ECHO ┃20行目
ECHO ┃21行目 ┃
ECHO ┗━━━━━━━━━━━━━━━━━━━┛
ECHO 何かキーを押してください。
PAUSE > NUL
218:デフォルトの名無しさん
09/09/10 12:37:02
nul はDOS窓
null がコマンドプロンプト
219:119
09/09/10 16:14:29
>>218
(゚Д゚)ハァ?
220:デフォルトの名無しさん
09/09/10 21:06:16
notepad.exe テレビの時間.txt
221:デフォルトの名無しさん
09/09/10 22:25:47
>>215
@echo off
at.exe %1 /interactive mshta.exe "about:<h1>%*</h1>"
222:デフォルトの名無しさん
09/09/11 01:30:58
>>221
mshta.exe "about:<h1>***</h1>"
これはおもろいな
223:デフォルトの名無しさん
09/09/11 13:33:48
@echo off
at.exe %1 /interactive msg.exe * %2
224:デフォルトの名無しさん
09/09/11 15:23:27
msgってうちのVistaには無いんだよな
225:デフォルトの名無しさん
09/09/11 16:45:28
@ECHO OFF
TITLE オリジナルメッセージ表示Test.
ECHO ┏≪お知らせ≫━━━━━━━━━━━━━━━━┓
ECHO ┃1234567890123456789012345678901234567┃
ECHO ┃ 1 2 3 *┃
ECHO ┃12345678901234567890123456789012345678901234567890123456789012345678901234┃
ECHO ┃ 1 2 3 4 5 6 7 *┃
ECHO ┃5行目
ECHO ┃6行目
ECHO ┃7行目
ECHO ┃8行目
ECHO ┃9行目
ECHO ┃10行目
ECHO ┃11行目
ECHO ┃12行目
ECHO ┃13行目
ECHO ┃14行目
ECHO ┃15行目 おやつの時間
ECHO ┃16行目
ECHO ┃17行目
ECHO ┃18行目
ECHO ┃19行目
ECHO ┃20行目
ECHO ┃21行目 ┃
ECHO ┗━━━━━━━━━━━━━━━━━━━┛
ECHO 何かキーを押してください。
PAUSE > NUL
226:デフォルトの名無しさん
09/09/11 16:52:52
Outlook+cron最強
227:デフォルトの名無しさん
09/09/12 03:41:31
REM メッセージボックス テスト用.vbsファイル
Option Explicit
Dim k
k = MsgBox("( 現在の日時 " & Now & " )" & vbCrLf & vbCrLf & "まだ午前3:40すぎですが、起きますか?", 289, "メッセージテスト")
WScript.Quit(k)
228:デフォルトの名無しさん
09/09/12 13:14:15
WSHスレでもないのにVBS…だと?
229:デフォルトの名無しさん
09/09/12 13:22:36
バッチファイルで%1のアクセス日時を取得したいのですがどうすればいいのでしょうか?
230:デフォルトの名無しさん
09/09/12 13:34:42
dir/?
231:デフォルトの名無しさん
09/09/12 13:41:40
勘違いしていました、dirを見直し作成すると出来ました!
232:デフォルトの名無しさん
09/09/12 14:02:17
>>227
そこは vbCrLf でなく vbLf を使え
vbCrLf だと cr+cr+lf になるぞ
233:デフォルトの名無しさん
09/09/12 14:17:01
>>228
REM:&@CScript.exe //E:VBS //NoLogo "%~f0" %* & GOTO :EOF
にすればよかろう
234:デフォルトの名無しさん
09/09/12 14:51:25
@ECHO OFF
TITLE オリジナルメッセージ表示Test.
ECHO ┏≪お知らせ≫━━━━━━━━━━━━━━━━┓
ECHO ┃1234567890123456789012345678901234567┃
ECHO ┃ 1 2 3 *┃
ECHO ┃12345678901234567890123456789012345678901234567890123456789012345678901234┃
ECHO ┃ 1 2 3 4 5 6 7 *┃
ECHO ┃5行目
ECHO ┃6行目
ECHO ┃7行目
ECHO ┃8行目
ECHO ┃9行目
ECHO ┃10行目
ECHO ┃11行目
ECHO ┃12行目
ECHO ┃13行目 Outlook+cron最強
ECHO ┃14行目
ECHO ┃15行目 Outlook+cron最強
ECHO ┃16行目
ECHO ┃17行目 Outlook+cron最強
ECHO ┃18行目
ECHO ┃19行目
ECHO ┃20行目
ECHO ┃21行目 ┃
ECHO ┗━━━━━━━━━━━━━━━━━━━┛
ECHO 何かキーを押してください。
PAUSE > NUL
235:デフォルトの名無しさん
09/09/12 15:56:13
mshta.exe "about:<marquee>テレビの時間</marquee>"
236:デフォルトの名無しさん
09/09/12 19:12:36
>>232
はにゃ?
237:デフォルトの名無しさん
09/09/12 19:20:24
>>236
はにゃ?知らんと?
CTRL+Cしてメモ帳に貼り付けて保存a.txt
バイナリで改行コードを調べてみ
そうか
for /f %a in (a.txt) do echo [%a]
でもわかるが
238:デフォルトの名無しさん
09/09/12 19:34:01
mshta.exe vbscript:close(Msgbox("テレビの時間"))
239:デフォルトの名無しさん
09/09/12 20:22:26
mshta.exe javascript:alert("テレビの時間");close()
240:デフォルトの名無しさん
09/09/12 21:06:26
mshta.exe javascript:"テレビの時間"
241:デフォルトの名無しさん
09/09/12 22:19:07
@<nul rem='
@at.exe %1 /interactive mshta.exe "file://%~f0?%*"
@exit /b
'>
<script>resizeTo(320, 240);var arg=location.search.substr(1).split(/ /g);
document.title=arg[0];</script>
<hta:application innerborder="no" scroll="no" selection="no" />
<style>body{background-color:#00f;color:#00f;
font-family:'HG PGothicE';text-align:center;font-size:0px;}
div{position:relative;color:#fff;font-size:24pt;}</style>
<body onload="text.style.top=(108-20*arg.length)+'px';">
<div id="text"><script>document.write(arg.slice(1).join('<br>'));</script>
242:デフォルトの名無しさん
09/09/13 04:20:02
メッセンジャーサービスが動いている前提なら、net send %computername%で自分自身にメッセージ送るのがお手軽じゃけん。
243:デフォルトの名無しさん
09/09/14 23:44:49
forでdelims=に羅列した文字を区切り文字にしますが、
eol=に羅列して複数文字を無視判定文字にすることはできないのですか?
244:デフォルトの名無しさん
09/09/15 01:08:00
for /f "eol=b" %y in ('for /f "eol=a" %x in ( ) do echo %x') do echo %y
245:デフォルトの名無しさん
09/09/15 14:43:45
delimS Sがあるだろ?
eolS? Sがないだろ?
246:デフォルトの名無しさん
09/09/15 23:53:36
はい
247:デフォルトの名無しさん
09/09/19 00:49:53
forで"delims="で区切り文字をなしにしますが、
"eol="で無視判定文字をなしにすることはできないのですか?
248:デフォルトの名無しさん
09/09/20 21:46:12
はい
249:デフォルトの名無しさん
09/09/23 21:47:14
>>241 がうまく動かない。青い小さなウィンドウが開くだけ
250:デフォルトの名無しさん
09/09/23 22:19:23
>>249
>>215のように
○○.bat 16:00 テレビの時間
のように起動してる?
251:デフォルトの名無しさん
09/09/23 22:41:54
?
252:デフォルトの名無しさん
09/09/24 00:04:16
サーバにあるファイルを、こちらにあるファイルと取り替えたいのですが、
どうすれば可能でしょうか。一応、作ってみましたが、うまく動作してくれません。
サーバ格納先などのパスがわからないので、とりあえず自分のパソコン内で移動させようとしてます
CD C:\severkakunou
SK01.bmp
CD C:\hozonsaki
set /p INP="1:通常用、2:緊急用"
if INP == 1
del /p C:\severkakunou>SK01.bmp
C:\hozonsaki>copy SK01_00.bmp C:\severkakunou
else if INP == 2
del /p C:\severkakunou>SK01.bmp
C:\hozonsaki>copy SK02_01.bmp C:\severkakunou
else echo 入力できるのは「1」か「2」のみです
253:デフォルトの名無しさん
09/09/24 00:08:59
JOKEだとしても、面白くないよ
254:デフォルトの名無しさん
09/09/24 12:15:28
<~~~>(id="~~~-XXX-~~")
<name>~~~</name>
<file = "~~~~~"/>
</~~~>
255:デフォルトの名無しさん
09/09/24 12:17:26
>>251>>254
何か言え
256:デフォルトの名無しさん
09/09/25 00:47:07
やま
257:デフォルトの名無しさん
09/09/25 08:11:41
だでんき
258:デフォルトの名無しさん
09/09/26 10:32:02
べす
259:デフォルトの名無しさん
09/09/29 01:12:38
シェルをバッチファイルへ置き換えてるんだが、
シェルのchmod 644 とか trap とか kill -HUP とか limitは
バッチでも処理可能ですか?
260:デフォルトの名無しさん
09/09/29 01:24:50
どうぞ、
chmod.exe
trap.exe
kill.exe
limit.exe
261:デフォルトの名無しさん
09/09/29 03:38:41
>>259が言うシェルって何シェルの事なんだろう?
262:デフォルトの名無しさん
09/09/29 11:45:52
>>261
CSHだと思ってたんだが、拡張子がないから分からない…
すんません
263:デフォルトの名無しさん
09/09/29 11:49:24
つーか、Windowsでlimitだとか再現する意味があるのかね。
264:デフォルトの名無しさん
09/09/29 15:57:53
windowsでkill -HUPってなんだ?
265:デフォルトの名無しさん
09/09/29 19:16:39
アプリケーションのGUIを操作するコマンドってあるのでしょうか?
266:デフォルトの名無しさん
09/09/29 20:50:47
cscript.exe
mshta.exe
267:デフォルトの名無しさん
09/09/29 22:23:04
>GUIを操作
WScript.Shell#SendKeysみたいなもんの事?それとも>>266?
268:デフォルトの名無しさん
09/09/29 22:37:30
AppActivate.exe
SendKeys.exe
269:デフォルトの名無しさん
09/09/29 23:46:35
バイナリで特定のアドレスだけでよいので変更するバッチはないですかね?
270:デフォルトの名無しさん
09/09/29 23:55:04
なんて、説明したらよいのか、アプリをバッチファイルから起動したいのですが
TsSplitterというソフトなんですが、コマンドラインからも使えるのですが、なぜか処理がうまくいかなくて
GUIのものですとうまく起動するんです。
バッチファイルで起動まではできるのですが、そのあとの詳しい設定は前回履歴がのこっているので、
問題ありませんが、実行ボタンを手動で決定しなければなりません。
それをどうか自動処理できないかと四苦八苦している状態です。
お手数おかけしますが、もし可能であればお教えいただけるとありがたいです。
271:デフォルトの名無しさん
09/09/30 01:47:47
>>270
UWSCとか
URLリンク(www.uwsc.info)
272:デフォルトの名無しさん
09/09/30 09:35:28
>>269
それをバッチでやる理由は? 普通はバイナリエディタなりパッチツールを使うか、専用のパッチツールを作ると思うのだけど。
273:デフォルトの名無しさん
09/09/30 12:27:16
debug
274:デフォルトの名無しさん
09/09/30 14:10:22
>266
>267
できれば、>270のようにしたいと考えていますので
実行ボタンさえおせればいいのですが、、、どう組み込めばいいのでしょうか?
>271 少し私には理解できませんでした。
すいません。ありがとうございました。
275:デフォルトの名無しさん
09/09/30 14:20:38
実行ボタンくらい自分で押せばいいじゃん。
276:デフォルトの名無しさん
09/09/30 14:26:32
ぐぐりにいったら「他のキーワード」で「tssplitter バッチファイル」を提示された。
ちゃんと見てないが、色々バッチファイルを作っている人もいそうなのだけど、見てみたのかな?
277:デフォルトの名無しさん
09/09/30 14:37:54
なにこいつ。
278:デフォルトの名無しさん
09/09/30 17:35:21
>275それをいたっら、、、(笑)
>276
そちらはコマンドラインから動くものなので、
GUIのものを動かしたく考えておりますので、またすこし違うんです。。。。
279:デフォルトの名無しさん
09/09/30 18:07:50
> >271 少し私には理解できませんでした。
この手の人にはいくら回答付けても無駄だよ。
いくら的確な回答でも「理解できない」で終わり。
私努力する気無いから私の知ってるやりかたで教えてね(はあと
280:デフォルトの名無しさん
09/09/30 20:19:22
>>278
まずキーボード操作だけでその「実行」ボタンとやらを押す手順を考えるんだ。
大抵のGUIアプリならショートカットキーとかタブキーとか使えばできるだろ。
そしたらそれをVBScriptのWScript.Shell#SendKeys関数で再現すればよい。
WScript.Shell#SendKeys関数の使い方はぐぐってもよし、やふってもよし。
…お前の次の台詞は「少し私には理解できませんでした」と言う…
281:デフォルトの名無しさん
09/10/01 20:29:11
初歩的な質問ですいません
ファイル名を変更するバッチを作りたいんですが
ren *.bat_old.bat *_old.bat
で変更が出来ませんでした
どなたか教えて頂けませんか
282:デフォルトの名無しさん
09/10/01 23:25:34
できてるだろ?
ただ、そのコマンドラインは同じ名前に変えろと言ってるように見えるが?
なので変わらない。
283:デフォルトの名無しさん
09/10/02 01:13:48
.bat_old.bat の左がxなら
ren *x.bat_old.bat *x_old.bat
でいくよ
284:デフォルトの名無しさん
09/10/02 01:55:04
ren ?.bat_old.bat ?_old.bat
ren ??.bat_old.bat ??_old.bat
ren ???.bat_old.bat ???_old.bat
ren ????.bat_old.bat ????_old.bat
...
285:デフォルトの名無しさん
09/10/02 07:53:29
>>283
ありがとうございます
ただワイルドカードで指定してる部分は長さや文字が全てが不定になっています;
Start.bat_old.bat⇒Start_old.bat
Stop.bat_old.bat⇒Stop_old.bat
という風に変えたいのですが
ren *.bat_old.bat *_old.bat
では結果は
Start.bat_old.bat⇒Start.bat_old.bat
Stop.bat_old.bat⇒Stop.bat_old.bat
のままでした
例えば元のファイル名から真ん中の.batのみを削除する方法や
ワイルドカード指定してる所を変数に入れて処理する方法があれば教えていただきたいです
286:デフォルトの名無しさん
09/10/02 10:29:38
ren *.bat_old.bat *.|for /f "delims=" %i in ('dir /b *.bat_old') do ren "%i" "%~ni_old.bat"
こんな感じ?
287:デフォルトの名無しさん
09/10/02 14:27:06
for文変数のコピーは可能ですか?
下のようにしましたが動きませんでした
for %%i in (*.txt) do (
set k=%%i
echo %k%
)
288:デフォルトの名無しさん
09/10/02 15:24:44
またこの質問か
289:デフォルトの名無しさん
09/10/02 15:55:01
ren *.bat *_old.bat
とやってしまって、戻そうとしてんだろ?
やれやれだ
3段階で戻すんだな
ren *.bat_old.bat *.
ren *.bat_old *.
ren *. *_old.bat
290:デフォルトの名無しさん
09/10/02 18:58:25
>>288
新入りなんだから、そんなこと言わずに歓迎してやれよ
291:デフォルトの名無しさん
09/10/02 20:56:00
ren *.bat *_old.bat
は
ren *.bat *.
ren *. *_old.bat
とやればよかったのに
292:デフォルトの名無しさん
09/10/02 20:57:03
>>287
ウェルかめ
293:デフォルトの名無しさん
09/10/03 12:05:19
おまいら答もかいてやれよ
>>287
echoの行は遅延展開が必要。詳しくはset /? とかを参照
setlocal EnableDelayedExpansion
for %%i in 略
set k=%%i
echo !k!
294:デフォルトの名無しさん
09/10/03 12:13:22
>>293
a!.txt
がどうなるか知ってるのか?
295:デフォルトの名無しさん
09/10/03 12:24:47
>>294
これって解決方法あんの?
296:デフォルトの名無しさん
09/10/03 12:42:09
>>295
遅延変数展開を禁止して
サブルーチンでは変数が毎回評価されるのを利用するとか
setlocal DisableDelayedExpansion
for %%i in (*.txt) do call :foo %%i
goto :EOF
:foo
set k=%1
echo %k%
goto :EOF
297:デフォルトの名無しさん
09/10/03 18:46:01
for %%i in (*.txt) do (
set k=%%i
setlocal EnableDelayedExpansion
echo !k!
endlocal
)
298:デフォルトの名無しさん
09/10/04 13:59:14
for %%i in (*.txt) do (
set k=%%i
call echo %%k%%
)
299:デフォルトの名無しさん
09/10/05 19:13:20
複数ファイルの結合についてご意見を…
結合先の名前にアンダーバーを使いたいのですがうまくいきません
ファイルの場所がc:\movie\123abc\
元ファイル「123_01.mpg」「123_002.mpg」
結合後のファイル名「123_100.mpg」
バッチフィル名「copy.bat」
として、ファイル名の前半はディレクトリ名の一部を使うので
set fullpath=%0
set number=%fullpath:~-16,3% ←フルパスから16文字さかのぼって3文字とると「123」になります
copy /B *01.mpg+*02.mpg %number%_100.mpg
のようにしましたが、うまくいきません
アンダーバーをハイフンにすると「123-100.mpg」というのが出てきます(うまくいく)
たぶんアンダーバーが使えないんだと思い、ハイフンで作ってからリネームをしようと思ったのですが
ren %number%-100.mpg %number%_100.mpg
これを入れてもだめでした。どうしたらいいんでしょう?
300:デフォルトの名無しさん
09/10/05 19:19:30
すみません誤字が多かったので少し訂正します…
バッチファイル C:\movie\123abc\copy.bat
元ファイル1 C:\movie\123abc\123_01.mpg
元ファイル2 C:\movie\123abc\123_02.mpg
結合後 C:\movie\123abc\123_100.mpg
やりたいのは以上です。
301:デフォルトの名無しさん
09/10/05 19:24:22
何の根拠もないてきとーレス
”で括ってみたら?
302:デフォルトの名無しさん
09/10/05 20:51:17
すみません誤字が多かったので少し訂正します…
バッチファイル C:\movie\123abc\copy.bat
元ファイル1 C:\movie\123abc\123_01.mpg
元ファイル2 C:\movie\123abc\123_02.mpg
結合後 C:\movie\123abc\123_100.mpg
やりたいのは以上です。
303:デフォルトの名無しさん
09/10/05 21:00:06
たぶんアンダーバーが使えない
304:デフォルトの名無しさん
09/10/05 21:10:23
アンダーバーをハイフンにするとうまくいくよ
305:デフォルトの名無しさん
09/10/05 23:14:15
どういうこと?
306:デフォルトの名無しさん
09/10/06 02:52:35
%0 にフルパスがはいらないこと以外はうまくいく
つーかそのパスなら -15,3 じゃないの
307:デフォルトの名無しさん
09/10/06 03:20:23
ダブルクリック前提?
308:デフォルトの名無しさん
09/10/06 10:44:20
フルパスは%~f0だしディレクトリ名欲しいだけなら%~n0でいいんじゃ
309:デフォルトの名無しさん
09/10/06 11:15:16
いろいろどうもです。始めたばかりで変数の取り方もちょっとしか知りません
とりあえずアンダーバーは使えないと思って進めます。""でくくっても""が付くだけでした
%0と%~f0のどちらもいけます、中身はちょっと違いますが似てるのでOKです
%~n0はバッチファイルの名前が出てきてしまったので目的とは違いました
単にbatファイルのあるディレクトリの最初3文字を使って
同じディレクトリにあるファイルを結合させたいだけなんですが…('A`)
310:デフォルトの名無しさん
09/10/06 12:03:29
>>309
ああすまん、%~n0は完全に私の勘違いでした
311:デフォルトの名無しさん
09/10/06 14:13:42
なんでアンダーバーが使えないんだ?
312:デフォルトの名無しさん
09/10/06 14:34:57
copy a+b c_d
使えるけど?
313:デフォルトの名無しさん
09/10/06 15:11:01
そもそもcopyコマンドでどんなエラーが出たか書いてない時点で…
「うまくいきません」とだけ言われてもね…
314:デフォルトの名無しさん
09/10/06 15:54:22
シンボリックリンクのリンク切れを判定して削除するバッチ希望
315:デフォルトの名無しさん
09/10/06 21:16:55
シェルのショートカットのこといってんの?
バッチよりVBSのほうが早いな
316:デフォルトの名無しさん
09/10/06 22:02:17
Vistaや7には、ショートカットでは無いシンボリックリンクが正式に存在するんだぜ
もっとも、それ以前から微妙に存在してたけどな
317:デフォルトの名無しさん
09/10/07 00:55:57
>>299
>バッチフィル名「copy.bat」
これは…
318:デフォルトの名無しさん
09/10/07 01:38:29
だから何だ? 現象を説明できるのか?
319:デフォルトの名無しさん
09/10/07 01:44:32
copy.bat祭りが始まったと聞いてやって来ますた。
320:デフォルトの名無しさん
09/10/07 01:50:51
まユニークな名前を付けるべきではある
321:デフォルトの名無しさん
09/10/07 01:57:53
短いファイル名を付けないようにすると %~snxI はどうなる?
322:デフォルトの名無しさん
09/10/09 19:22:07
フォルダのシンボリックリンクとジャンクションの違いが分らん
323:デフォルトの名無しさん
09/10/11 16:13:36
ユーザの下にジャンクションがあるが、ダブルクリックするとアクセスエラー
なんのためにあるんだ?
324:デフォルトの名無しさん
09/10/11 17:37:25
ダブルクリックするとアクセスエラーになるのがジャンクション
ならないのがシンボリックリンクだにゃ
つまり、エクスプローラに見せたいか、見せたくないかだにゃ
325:デフォルトの名無しさん
09/10/12 22:40:21
>>317
通常のdosコマンドだったら大丈夫だったはず。
regとかfindstrとかはアウトだけど。
326:デフォルトの名無しさん
09/10/13 00:57:21
pingが通るか通らないかで分岐したいんですが
どうすればよいでしょうか?
327:デフォルトの名無しさん
09/10/13 01:02:45
最近のWindowsに付属のものならErrorLevelで判断できる。
328:デフォルトの名無しさん
09/10/13 01:12:41
>>325
同じ名前のコマンドとバッチ、どっちが先に処理されるかって事でしょ
329:デフォルトの名無しさん
09/10/13 01:13:06
本当ですね。
ありがとうございました。
330:デフォルトの名無しさん
09/10/13 21:17:50
>>328
だから通常コマンドならこっちがバッチより先。
copy.batとかmove.batとかは問題なし。
331:デフォルトの名無しさん
09/10/13 21:58:26
通常じゃないコマンドってなんだよw
つーかカレントディレクトリにあるもの優先だろが
332:デフォルトの名無しさん
09/10/13 22:08:53
C:\>おまいら用語を知らんのか?
'おまいら用語を知らんのか?' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
333:デフォルトの名無しさん
09/10/13 23:42:37
用語を知ってるレベルになるとバッチなんか使わない
334:デフォルトの名無しさん
09/10/14 00:26:04
>>326
ping www.google.com && echo succ || echo fail
335:デフォルトの名無しさん
09/10/14 02:45:21
組み込みコマンドがexeやbatより優先されるのって、なんか慣れない。
パスで修飾とかできないから、そうせざるを得ないのは理解できるんだけどなあ。
336:デフォルトの名無しさん
09/10/14 04:37:26
だからぁ優先されないって言ってんじゃん
337:デフォルトの名無しさん
09/10/14 10:29:23
内部コマンド>カレントディレクトリの外部コマンド>パス上の外部コマンド
の順番だっけ?
初期からあるコマンドに内部コマンドと外部コマンドが入り交じってるのに
順番がこんなんだから解りにくいことになってるな
338:デフォルトの名無しさん
09/10/14 12:13:20
ユーザ名の一覧が改行区切りで保存されたファイルがあります。
バッチを実行したユーザがそのファイルに存在したときのみ
それ以降の処理を行うようにしたいのですが、
どのように書けばよいでしょうか?
ユーザが存在するかどうかは
findstr "name" "\\server\Users.txt" /i /x"
にて判断できるかと思ったのですが
開くことができませんと表示されてしまいます・・・
339:デフォルトの名無しさん
09/10/14 13:36:24
>>338
エラーメッセージに答えでてるじゃん
FINDSTR: 開くことができません (/i)
FINDSTR: 開くことができません (/x)
340:デフォルトの名無しさん
09/10/14 14:44:53
findstr.exeのプロパティを見てみ
元はresource kitのqgrep
だからシンタクスはunix流
findstr -i -x "name" "\\server\Users.txt"
findstr "name" "\\server\Users.txt" /i /x"
はdos流
341:デフォルトの名無しさん
09/10/14 17:02:19
<全角文字や半角スペース入り> DELAY <数字か-で始まる数字>ms.aac
ってファイル名から<数字か-で始まる数字>だけを取り出して変数にsetしたいのですけどよい方法はありますか?
DELAYの前に半角スペースが入ることもあるのでfor /fのdelims= では駄目でした
342:デフォルトの名無しさん
09/10/14 17:04:26
途中で送信
343:デフォルトの名無しさん
09/10/14 18:19:33
echo %hoge:*DELAY=%
344:デフォルトの名無しさん
09/10/14 20:08:15
>>343
ありがとうございます
前後を置換して取り出せました
345:デフォルトの名無しさん
09/10/15 14:12:52
ドライブの空き領域のみを表示させるにはどうすればよいでしょうか?
346:デフォルトの名無しさん
09/10/15 15:21:35
for /f "skip=9 tokens=3" %%i in ('dir /-c c:\') do (@set a=%%i)
for /f "skip=2 tokens=2 delims=:" %i in ('fsutil volume diskfree c:') do @echo %i
347:デフォルトの名無しさん
09/10/15 18:44:57
@if "%~d1"=="" %~f0 %CD%
@mshta.exe "javascript:with(new ActiveXObject('Scripting.FileSystemObject')){try{GetStandardStream(1).Write(GetDrive('%~d1').FreeSpace);}catch(e){}}close();" | more
348:デフォルトの名無しさん
09/10/15 18:51:40
wmic logicaldisk c: get freespace
349:デフォルトの名無しさん
09/10/15 19:08:46
77F91AB1 mov eax,ecx
77F91AB3 mov ecx,dword ptr [ebp-10h]
77F91AB6 mov dword ptr fs:[0],ecx
77F91ABD pop edi
77F91ABE pop esi
77F91ABF pop ebx
77F91AC0 leave
77F91AC1 ret
77F91AC2 push ebp
77F91AC3 mov ebp,esp
77F91AC5 sub esp,258h
77F91ACB lea eax,[ebp+0Ch]
77F91ACE push eax
77F91ACF lea eax,[ebp-258h]
77F91AD5 push dword ptr [ebp+8]
77F91AD8 push 200h
77F91ADD push eax
350:デフォルトの名無しさん
09/10/21 18:22:39
ロボコップがコマンドコムの読み込み後にバイオスをロードしました
351:デフォルトの名無しさん
09/10/21 18:35:42
romは遅いからramにコピーするんですね。普通です。
352:デフォルトの名無しさん
09/10/21 19:30:22
rem
353:デフォルトの名無しさん
09/10/22 10:47:15
コマプロからftpでunixにデータアップすると日付時間がかわる…
変えずにアップする方法ないかな…
バッチ内部に組み込み途中で挫折した。
固めてアップとか3rdPT製アプリ使用jはナシの方向で解決策ないかねぇ…
ないか…
354:デフォルトの名無しさん
09/10/22 10:55:58
>>353
フリーのftpクライアントと同じ戦略でいいじゃん。
あれは、サーバにアップロードした後シェル実行でタイムスタンプを強制しているだけなんだから。
355:デフォルトの名無しさん
09/10/22 11:24:00
コマプロw
356:デフォルトの名無しさん
09/10/22 11:37:21
メインフレーム業界に居る俺はコマプロと聞くとプロシージャのほうを連想してしまう…
357:デフォルトの名無しさん
09/10/22 17:23:40
#define ClearFileTime(fileTime) \
(fileTime).dwLowDateTime = 0; \
(fileTime).dwHighDateTime = 0;
#define ClearFindDataFields(lpFind) \
ClearFileTime((lpFind)->ftCreationTime); \
ClearFileTime((lpFind)->ftLastAccessTime); \
(lpFind)->dwReserved0 = 0; \
(lpFind)->dwReserved1 = 0; \
(lpFind)->cAlternateFileName[0] = '\0';
ftLastModTime.dwLowDateTime =
ftLastModTime.dwHighDateTime = 0;
ftExpiryTime.dwLowDateTime =
ftExpiryTime.dwHighDateTime = 0;
ftPostCheck.dwLowDateTime =
ftPostCheck.dwHighDateTime = 0;
pfdW->dwFileAttributes = pfdA->dwFileAttributes;
pfdW->ftCreationTime = pfdA->ftCreationTime;
pfdW->ftLastAccessTime = pfdA->ftLastAccessTime;
pfdW->ftLastWriteTime = pfdA->ftLastWriteTime;
pfdW->nFileSizeHigh = pfdA->nFileSizeHigh;
pfdW->nFileSizeLow = pfdA->nFileSizeLow;
pfdW->dwReserved0 = pfdA->dwReserved0;
pfdW->dwReserved1 = pfdA->dwReserved1;
358:デフォルトの名無しさん
09/10/22 18:09:56
>>353
folder.copyhere
folderitem.modifydate
でだめか?
359:デフォルトの名無しさん
09/10/22 19:28:35
>354->358
これから夜勤。仕事先のでためしてみるわ
ありがとう。
360:デフォルトの名無しさん
09/10/28 22:21:25
> dir /s /b xxx
ファイルが見つかりません
このエラーメッセージを出さなくするのってどうやるの?
事前にあるかどうかをチェックするというのはなしで。
361:デフォルトの名無しさん
09/10/28 22:37:24
dir /s /b xxx 2>nul
362:デフォルトの名無しさん
09/10/28 23:01:40
const TCHAR CH_NUL = TEXT('\0');
const TCHAR CH_ZERO = TEXT('0');
const INT MAX_EDIT_TEXT = 16;
const INT MAX_CMB_TEXT = 10;
const INT64 MAX_VALUE = ((1i64 << 60) * 6i64);
const INT64 MIN_VALUE = 1024i64;
DBGASSERT((IDS_ORDERMB == IDS_ORDERKB + 1));
DBGASSERT((IDS_ORDERGB == IDS_ORDERKB + 2));
DBGASSERT((IDS_ORDERTB == IDS_ORDERKB + 3));
DBGASSERT((IDS_ORDERPB == IDS_ORDERKB + 4));
DBGASSERT((IDS_ORDEREB == IDS_ORDERKB + 5));
INT64 Value = 0;
INT64 Decimal = 0;
INT xbOrder = e_Byte;
DWORD dwWholePart = 0;
DWORD dwFracPart = 0;
INT Order = XBytes::e_Byte;
363:デフォルトの名無しさん
09/10/28 23:08:33
li r12, 1
slwi r12, r12, n
lwz r11, offsetof_Mask(r3)
and r11, r11, r12
cmpli 1, 0, r11, 0
bc 12, 6, Obj##n
addi r3, r3, 8
addi r3, r3, 12
li r12, n
rlwinm r12, r12, 2, 0, 31-2
lwz r11, 0x4(r3)
lwzx r11, r12, r11
lwz r3, 0(r3)
lwz r2, 4(r11)
lwz r11, 0(r11)
mtctr r11
li r12, n
rlwinm r12, r12, 2, 0, 31-2
lwz r11, offsetof_apfn(r3)
lwzx r11, r12, r11
lwz r3, offsetof_pvObject(r3)
lwz r2, 4(r11)
lwz r11, 0(r11)
mtctr r11
364:デフォルトの名無しさん
09/10/28 23:13:10
OSはWindows XP HomeのSP3です。
一般ユーザ(usersグループ)でshutdownコマンドを
バッチによる自動実行をしたいのですが、
OSの仕様で管理者ユーザ(administratorsグループ)からしか実行
できません。
runasコマンドで、管理者ユーザで実行可能なようですが、
必ずパスワードを入力しなければならないようです。
※XP Homeの場合はrunasコマンドのオプションによるパス
ワード登録?も出来ないみたいです。
パスワード入力なしで、
一般ユーザからshutdownコマンドをバッチで実行する方法はありま
すか?
365:デフォルトの名無しさん
09/10/28 23:20:56
case PowerActionNone:
uiActionId = IDS_NOACTION;
break;
case PowerActionSleep:
uiActionId = IDS_STANDBY;
break;
case PowerActionHibernate:
uiActionId = IDS_HIBERNATE;
break;
case PowerActionShutdown:
case PowerActionShutdownReset:
case PowerActionShutdownOff:
uiActionId = IDS_POWEROFF;
break;
366:デフォルトの名無しさん
09/10/28 23:22:56
GlobalPowerPolicy.user.PowerButtonAc.Action = PowerActionNone;
GlobalPowerPolicy.user.PowerButtonDc.Action = PowerActionNone;
GlobalPowerPolicy.user.SleepButtonAc.Action = PowerActionNone;
GlobalPowerPolicy.user.SleepButtonDc.Action = PowerActionNone;
GlobalPowerPolicy.user.LidCloseAc.Action = PowerActionNone;
GlobalPowerPolicy.user.LidCloseDc.Action = PowerActionNone;
GlobalPowerPolicy.user.GlobalFlags = (ULONG) 0;
367:デフォルトの名無しさん
09/11/01 16:09:33
bat起動時に、Shiftキーが押されていない場合はA.exe
押されている場合はB.exeを実行したいのですが、
キー押下状態の取得がうまくいきません。
@echo off
←ここでShiftキー押下状態の取得したいです。
IF ERRORLEVEL 1 GOTO SHIFT_KEY
START "" "D:\My Documents\A.exe"
GOTO END
:SHIFT_KEY
START "" "D:\My Documents\B.exe"
:END
ご存知の方教えてください。
368:デフォルトの名無しさん
09/11/01 16:27:25
>>367
> キー押下状態の取得がうまくいきません。
何をやってうまく行かないのかを、まず書いてくれ。
OSその他の環境情報もだ。
本当は「キー押下状態の取得方法が分かりません」じゃないのか?
369:デフォルトの名無しさん
09/11/01 16:45:31
わからないやつは黙ってろ
370:デフォルトの名無しさん
09/11/01 17:42:07
標準のコマンドのみでは無理
DOS用だとbatuyとかあったけどWin用はしらん
371:デフォルトの名無しさん
09/11/01 18:04:08
URLリンク(www.page.sannet.ne.jp)
キー入力による分岐 ERRORLEVEL
ここらへん使えば出来そうかなぁと。
WinXPです。
372:デフォルトの名無しさん
09/11/01 18:35:42
一から勉強して出直して来い
373:デフォルトの名無しさん
09/11/01 18:40:31
三くらいからで勘弁してください
374:デフォルトの名無しさん
09/11/01 18:47:17
.NET Framework 2.0がインストールされてるなら
以下をCheckShiftKey.jsのような名前を付けて保存し、
コマンドプロンプトで
%SystemRoot%\Microsoft.NET\Framework\v2.0.50727\jsc.exe CheckShiftKey.js
を実行してCheckShiftKey.exeを作ればよい。
// CheckShiftKey.js
import Accessibility;
import System;
import System.Drawing;
import System.Windows.Forms;
if (Control.ModifierKeys & Keys.Shift)
Environment.Exit(1);
375:デフォルトの名無しさん
09/11/01 22:04:39
>>374
import Accessibility;
import System.Drawing;
import System.Windows.Forms;
import System.Diagnostics;
if (Control.ModifierKeys & Keys.Shift) {
Process.Start("D:\\My Documents\\A.exe");
} else {
Process.Start("D:\\My Documents\\B.exe");
}
うまく出来ました。ありがとうございました。スレ違い失礼しました。
376:デフォルトの名無しさん
09/11/02 23:17:03
>>370 標準のコマンドのみでは無理
そんなことはなかろう
377:デフォルトの名無しさん
09/11/03 07:38:47
どうやるの?
378:デフォルトの名無しさん
09/11/03 08:12:03
すまん勘違いだった
379:デフォルトの名無しさん
09/11/03 14:39:20
せっかく解決済みなんだからほっとこーよ
380:デフォルトの名無しさん
09/11/03 15:31:38
すまん余計なお世話だった
381:デフォルトの名無しさん
09/11/03 16:08:05
>>364
タスクスケジューラを使えばできるよ
382:デフォルトの名無しさん
09/11/03 17:04:12
質問してもよろしかったでしょうか?
バッチで標準入力がリダイレトされているか判定できましたでしょうか?
383:デフォルトの名無しさん
09/11/03 20:00:57
はい
384:デフォルトの名無しさん
09/11/03 22:39:51
foo.bat | bar.bar > baz.txt
で
foo, barが> baz.txtされてるかどうかを検出、分岐するってことなら無理だろ。
385:デフォルトの名無しさん
09/11/04 00:21:16
>標準出力の話じゃないだろ。
386:デフォルトの名無しさん
09/11/04 14:50:20
foo.bat | bar.bar > baz.txt
は知らんが
foo.bat > baz.txt
や
foo.bat | bar.bat
なら可能だろ。
387:デフォルトの名無しさん
09/11/04 15:25:48
>質問してもよろしかったでしょうか?
過去に遡って質問するわけじゃないのだから、過去について聞くことは無意味だと思うのだが。
388:デフォルトの名無しさん
09/11/04 15:36:16
過去から現在に渡ってよろしいことになっていたかどうかを聞いているので
問題なかろう。
389:デフォルトの名無しさん
09/11/04 20:10:06
>質問してもよろしかったでしょうか?
という質問をした時点で、その質問は過去の事象で、その可否を聞いているのだろう
390:デフォルトの名無しさん
09/11/04 20:20:16
うざ
391:デフォルトの名無しさん
09/11/04 21:04:37
メモ帳(memo.exe)でテキストファイルを開くコマンドを書いたのだが、
バッチを実行するとメモ帳は開くがプロンプトが閉じない。
メモ帳を開いた時点でプロンプトを閉じるにはどうすればよい?
以下バッチの内容
----------------------------------------
C:\Program ~省略~ \memo.exe test.txt
EXIT
----------------------------------------
392:デフォルトの名無しさん
09/11/04 21:08:18
のだが、
またお前か
393:デフォルトの名無しさん
09/11/04 21:10:09
start
394:デフォルトの名無しさん
09/11/04 21:16:20
>>393
ありがとう。
無事できました。
395:デフォルトの名無しさん
09/11/04 22:04:18
うざ
396:デフォルトの名無しさん
09/11/05 17:02:11
>>393
start バッチ
とやってみたのだが、閉じない。
397:デフォルトの名無しさん
09/11/11 19:06:13
test1
test2
test3
test4
という文字の入ったtest.txtがあるとします。
バッチファイルからピンポイントで二行目(test2)を引き出して変数とおくにはどうしたらよいでしょうか?
for /f "skip=1" %%a in (test.txt) do set hensuu=%%a
を使っても、
hensuu=test2
hensuu=test3
hensuu=test4
となってしまい結局変数はtest4になってしまいます。
どなたか教えてください。
398:デフォルトの名無しさん
09/11/11 21:05:24
setlocal enableextensions enabledelayedexpansion
set hensuu=
for /f "skip=1" %%a in (test.txt) do if "!hensuu!"=="" set hensuu=%%a
399:デフォルトの名無しさん
09/11/12 00:20:18
>>398
ありがとうございます!できました!
enableextensionsでコマンド拡張機能を有効にしたからできるようになったってことですか?
コマンド追ってググったりしてもこの文でなぜできるのか理解できないです
400:デフォルトの名無しさん
09/11/12 03:09:59
enabledelayedexpansionで遅延展開を有効にしたから
forの中でsetした変数(hensuu)が参照できるようになっている。
遅延展開が無効だと
if "%hensuu%"=="" の部分がfor実行段階で if ""=="" になって常に真ということになる。
401:デフォルトの名無しさん
09/11/12 11:32:45
>>400
遅延展開を有効にすることでhensuu=test2にその時点でなるから、
if "%hensuu%"=="" には引っかからずにその時点でforを終了させられるという事ですね。
遅延展開についてよく理解できました。
わかりやすいレスありがとうございます。
402:デフォルトの名無しさん
09/11/12 14:18:58
forが終了するわけじゃない。
hensuu=test2となった以降はifが偽になるため何も実行されずにループする。
test.txtの残りが凄く長ければそれだけ終了時間は伸びる
403:デフォルトの名無しさん
09/11/12 18:50:55
>>402
てことは
test3は偽、よって実行なし
test4は偽、よって実行なし
・
・
・
って感じに最後の行になるまでされるわけですか。
だとしたら500行のtest.txtだとこれが500行分されるんですね・・・
やっと完全に理解できました。ありがとうございます
404:デフォルトの名無しさん
09/11/13 22:26:52
そんな無駄なことせんでも
405:デフォルトの名無しさん
09/11/13 22:28:31
for /f "skip=1" %%a in (test.txt) do set hensuu=%%a&goto x
:x
406:デフォルトの名無しさん
09/11/14 00:03:56
遅延展開使わんでも
set hensuu=
for /f "skip=1" %%a in (test.txt) do if not defined hensuu set hensuu=%%a
407:デフォルトの名無しさん
09/11/15 18:09:51
if 条件A or 条件B (
処理1
) else (
処理2
)
ここで「条件A or 条件B」と言う構文はバッチファイルでは使えないんでしたっけ?
408:デフォルトの名無しさん
09/11/15 18:25:03
if/?
409:デフォルトの名無しさん
09/11/15 21:19:54
>>408
解決しました。ありがとうございます。
410:デフォルトの名無しさん
09/11/16 13:00:34
set or=
if 条件A set or=true
if 条件B set or=true
if defined or (
処理1
) else (
処理2
)
411:デフォルトの名無しさん
09/11/17 17:10:49
more|notepad /dev/stdin
みたいなことはできないのですか?
412:デフォルトの名無しさん
09/11/17 23:16:31
echoで2段階にファイル書き出しをしたいのですが、うまくできません。
echo echo start "" コマンド.bat "引数" >B.bat >>A.bat
上記コマンドを実行して、まずA.batに
echo start "" コマンド.bat "引数" >B.bat
を書き出し、その作成したA.batを実行しB.batに
start "" コマンド.bat "引数"
ができるようにしたいのですが、実際には最初のコマンドを実行したところでA.batに
echo start "" コマンド.bat "引数"
のように、 >B.batが抜けた状態で作成されます。
何かいい方法は無いでしょうか。ご教示お願いいたします。
413:デフォルトの名無しさん
09/11/17 23:40:05
こんな感じか?
echo echo start "" コマンド.bat "引数" ^>B.bat >A.bat
414:デフォルトの名無しさん
09/11/18 01:08:33
>>413
当方412ではありませんが、感動しました。
^>を使えばそういう事ができるんですね
差し支えなければ、^のしくみを教えていただけないでしょうか?
415:デフォルトの名無しさん
09/11/18 01:19:52
(^^)
416:デフォルトの名無しさん
09/11/18 11:42:53
>>414
単なるエスケープ文字
417:デフォルトの名無しさん
09/11/18 17:30:23
^^は^をエスケープしてるので
echo (^^)
は
(^)
となる
418:412
09/11/18 20:00:18
>>413
レス遅くなって申し訳ないです。ありがとうございました!
ばっちり希望どおりの動作をしてくれるようになりました!
>>416>>417
仕組みがよくわかってなかったので勉強になりました。
みなさんどうもありがとうございました。
419:デフォルトの名無しさん
09/11/19 22:15:12
bash とかでいうところの``で囲んだ時のような、コマンドの出力結果をコマンドラインオプションに回す文法はありませんか?
420:デフォルトの名無しさん
09/11/19 23:41:46
for /f "usebackq" %I in (`dir /b`) do echo %I
421:デフォルトの名無しさん
09/11/20 00:28:27
>>420
ありがとうございました
422:デフォルトの名無しさん
09/11/21 01:56:20
usebackqはコマンド中に「'」を使う必要がある時に「'」の代わりに「`」を使うってオプションだろ?
for /f %i in ('dir /b') do echo %i
でいいのに何故わざわざusebackq付けんの?
423:デフォルトの名無しさん
09/11/21 02:15:37
420じゃないけど常に usebackq 付けるようにした方が面倒な事考えなくて済む。
URLリンク(www.atmarkit.co.jp)
424:デフォルトの名無しさん
09/11/21 16:02:45
好みだろ
どーでもいー
425:423
09/11/21 16:20:50
>>424
そう、好み
てか昔ハマッたことがあるから、俺は付ける派
426:デフォルトの名無しさん
09/11/24 13:26:23
外部プログラムを起動させるコマンドを実行すると
そのアプリが終了するまでbatへ制御が戻らないのですが
それを回避することは可能ですか?
427:デフォルトの名無しさん
09/11/24 13:48:22
startコマンドを使う
428:デフォルトの名無しさん
09/11/24 16:10:21
batファイルを分けることなく処理の優先順位を変更する方法があれば教えてください。
429:デフォルトの名無しさん
09/11/24 18:57:10
startコマンドを使う
430:428
09/11/24 19:10:35
>>429
start /b /low :exec ではうまくいきませんでした。
どのように記述すればいいのでしょうか?
431:デフォルトの名無しさん
09/11/24 22:29:40
ところで
URLリンク(itpro.nikkeibp.co.jp)
start /b test.bat
てどういう意味がある?
call test.bat
とは違うの?
432:デフォルトの名無しさん
09/11/25 12:44:00
ウィンドウ開かないだけで、別プロセスのcmd.exeが立ち上がる…んだと思う。
433:デフォルトの名無しさん
09/11/25 20:20:58
>>431
誰が書いたか知らんが、阿呆が意味も分らず、最初のオプション使って、無理矢理、使用例を作っただけなんだろ
434:デフォルトの名無しさん
09/11/25 20:25:13
>>430
goto %1
start /low "" %0 :exec
435:デフォルトの名無しさん
09/11/27 16:18:48
そういやstartって
start file
はokで
start "file"
はngな時があるけどどういう理屈なんだろうか
436:デフォルトの名無しさん
09/11/27 16:27:01
理屈って言う程のことはないよ
start/?見りゃ自明だろ?
437:デフォルトの名無しさん
09/11/27 16:32:00
>>430
wmiのsetpriorityを使え
438:デフォルトの名無しさん
09/11/27 20:12:44
そんなこと言っても難しかろ
startにしとけ
439:デフォルトの名無しさん
09/11/29 02:25:00
data.dat というファイルがあったとして、これを一日に一回
data1129.datみたいに日時をつけてバックアップとして保存していけるようなバッチファイル
作れる方いましたら教えてください
スタートアップに登録するとして、同日に一回でも度ってあったらコピーしないという仕様で
440:デフォルトの名無しさん
09/11/29 03:40:36
if not exist data%date:/=%.dat copy /b data.dat data%date:/=%.dat
441:デフォルトの名無しさん
09/11/29 13:46:20
プロンプト文字にerrorlevel出すにはpromptコマンドにどう書けばよい?
442:デフォルトの名無しさん
09/12/02 15:20:51
これは、結局バッチスクリプトとは関係ないんですけど、copyコマンドでオプションに
/A(テキストモード)を指定しても、BOMありUTF-8のテキストファイルを結合すると
ファイルとファイルの間にBOMが残るんです。
現在はWinXPのコマンドプロンプトでしか試せないんですが、VistaやWin7なら、ちゃん
とBOMを外してくれますか?
443:デフォルトの名無しさん
09/12/02 15:40:21
Vistaでやってみたが、入ってるね
/Aは改行コードしか見ないだろうから仕方がないかも
444:デフォルトの名無しさん
09/12/02 15:44:42
あ、改行とEOFだったかな
445:デフォルトの名無しさん
09/12/02 19:41:05
/A ASCII テキスト ファイルとして扱います。
UTF-8じゃないのに何言ってんだか
446:デフォルトの名無しさん
09/12/02 19:50:38
/Aが改行をどうするって?
447:デフォルトの名無しさん
09/12/02 21:49:14
COPY /8
448:デフォルトの名無しさん
09/12/03 14:30:54
バッチスクリプトならできるが、関係ないな
449:442
09/12/03 18:30:00
>>443
Vistaでも駄目ですか、どなたかWin7の状況を教えて下さい。
450:デフォルトの名無しさん
09/12/03 20:27:40
逆に7でこの挙動が変わってたらおかしいでしょう
451:デフォルトの名無しさん
09/12/03 20:43:06
別におかしくないが?
452:デフォルトの名無しさん
09/12/03 20:46:19
chcp 65001
453:デフォルトの名無しさん
09/12/03 21:15:54
BOM削除してからcopyすれば?
454:デフォルトの名無しさん
09/12/03 21:54:01
ところで^Z削除するのはどうすれば?
455:デフォルトの名無しさん
09/12/04 15:10:43
>>452
フォントを変えるコマンドは?
456:デフォルトの名無しさん
09/12/04 21:47:30
ぐぐれ
まあ変えても解決にはならんが
457:デフォルトの名無しさん
09/12/04 21:58:36
作れ
setconsolefont()
setcurrentconsolefontex()
458:デフォルトの名無しさん
09/12/08 13:13:56
代替コマンドシェルにnyacusなんてのがあるんだな。
cmdと比べると構文が結構まともだ。
PowerShellより圧倒的に軽いしちょっと覚えてみる気になった。
459:デフォルトの名無しさん
09/12/09 03:55:32
nyacus落ちない?数年前に使ったけど、それでやめた。
460:デフォルトの名無しさん
09/12/10 01:06:30
今のところ落ちてないよ。まだ大した使い方してないけど。
最終更新日が先月でまだまだメンテが続いてるね。
461:デフォルトの名無しさん
09/12/11 15:53:24
CMD.exeのfor文は頑張りすぎ
462:デフォルトの名無しさん
09/12/11 18:23:45
runasの/trustlevelってどういうときに使うの?
463:デフォルトの名無しさん
09/12/11 21:14:34
for /F %%a in (filelist.txt) do move "%%a" %dir%
filelist.txtにファイルの一覧をリストアップしてそのファイルをすべて特定のフォルダへ移動したいです
ですがファイル名に半角スペースが含まれていると移動されずにスルーされてしまいます
困ってしまいます
お願いします
464:デフォルトの名無しさん
09/12/11 21:15:18
>>439
>>440
これの改良版で1週間分のみバックアップを残す仕様に出来る方おりませんか?
ファイルが7個以上あった場合、古いものから消していくようになると思うんですが
465:デフォルトの名無しさん
09/12/11 21:25:48
>>463
"delims="
466:デフォルトの名無しさん
09/12/11 21:32:10
>>464
for /f "skip=6 delims=" %%i in ('dir /b/o-d data*.dat') do del %%i
これで新しいものから順に6個を除いたファイルは全部消える
467:デフォルトの名無しさん
09/12/11 21:33:20
>>465
ありがとうございました
助かりました
468:デフォルトの名無しさん
09/12/12 11:52:30
カレントディレクトリを取得するのに
for %i in (.) do set cdir=%~dpnxi
とかやってるんですが、もっとスマートな方法はないですしょうか?
469:デフォルトの名無しさん
09/12/12 12:04:19
%CD%とかじゃ駄目だっけ?
470:デフォルトの名無しさん
09/12/12 15:46:31
フルパスをゲットするなら%cd%でいい
c:\a\b\c\d\thisdir
のthisdirをゲットするなら
%cd:\=&set cdir=%
echo %cdir%
とか。
471:デフォルトの名無しさん
09/12/12 19:32:42
set cdir=.
472:デフォルトの名無しさん
09/12/13 03:10:06
set cdir=.
echo %cdir%
.
ダメじゃんw
473:デフォルトの名無しさん
09/12/13 19:05:35
set cdir=%cd%
echo %cdir%
474:デフォルトの名無しさん
09/12/14 11:07:38
%CD%なんてあったんですね。ありがとうございます。
カレントディレクトリがセットされた環境変数は ありそうだと思って
set<enter>して探したのですが、これにはでないみたいです。
「特殊な環境変数」でググると%CD%以外にもいろいろ知ることができました。
475:デフォルトの名無しさん
09/12/14 14:11:28
set/?
476:デフォルトの名無しさん
09/12/14 14:14:37
カレントディレクトリはドライブごとにある
echo %=c:%
echo %=d:%
477:デフォルトの名無しさん
09/12/14 14:16:28
>>476
知らなかった・・・
478:デフォルトの名無しさん
09/12/14 14:37:09
set,
で=*環境変数も表示
479:デフォルトの名無しさん
09/12/14 14:40:28
2009年も終わろうとしてるのに今更cmdのtipsなんて何の意味がある。
PowerShellに乗り換えようぜ。
480:デフォルトの名無しさん
09/12/14 15:50:56
=::=::\
は何?
481:デフォルトの名無しさん
09/12/14 22:25:59
>>479
PowerShellがNTに載ったらね
482:デフォルトの名無しさん
09/12/15 14:51:01
おまえらスレチガイ
スレリンク(win板)
483:デフォルトの名無しさん
09/12/21 15:23:45
ipアドレスの3ブロック目で判断して、
レジストリを修正するバッチファイルが作りたいのです。
ipconfigしても情報が多すぎるし、
ドット2つの後ってどうしたらいいんでしょう…。
どなたかご教授願います。
484:デフォルトの名無しさん
09/12/21 15:26:03
for /f "delims=. tokens=3" %I in ("1.2.3.4") do echo %I
485:sage
09/12/21 16:36:18
>>484
素晴らしすぎます!!!
というか私の知識不足…頑張り不足…でしょうか。
ありがとうございました!
486:483
09/12/21 19:26:24
お陰様でここまできました。
for /f "tokens=14 delims=: " %%I in ('ipconfig ^| find "IP Address"') do set IP=%%I
for /f "tokens=3 delims=." %%I in ("%IP%") do echo %%I
echo %IP%
ただ、スマートじゃないというかなんというか…。
こんなもんでしょうかね。
487:デフォルトの名無しさん
09/12/21 22:05:22
tokens=14 ってなんじゃそら。
skip=n でn行飛ばせるって知ってるよな?
488:デフォルトの名無しさん
09/12/21 22:55:04
出たか、知ったかぶり。お手並み拝見
489:デフォルトの名無しさん
09/12/22 13:14:33
横からだけど俺的にはアリだな。
tokens=14 を数える事は二度と無いとしても、将来コピペで使い回した時、
このスレでのやりとりを良い思い出として生暖かく思い出せるw
"tokens=2 delims=:" だったら何も心に響かない。
490:デフォルトの名無しさん
09/12/22 17:32:15
OSにもれなくついてくるおまけの機能に多くを求めてはいけない。
メモ帳やペイントに不満を感じるなら勝手に別のアプリをお使いくださいというのがMSの基本姿勢。
不便だろうが欠陥があろうが知ったことではない。
491:デフォルトの名無しさん
09/12/22 17:47:03
delimsを.だけにすれば1行で書けるだろ?
for /f "tokens=?? delims=." %%I in ('ipconfig ^| find "IP Address"') do echo %%I
??は自分で数えろ
492:デフォルトの名無しさん
09/12/22 18:26:46
skipがどうしたって?
493:デフォルトの名無しさん
09/12/22 18:45:11
どんぐりの背比べ
494:483
09/12/22 18:47:08
>>491
ありがとうございました。
for /f "tokens=15 delims=." %%I in ('ipconfig ^| find "IP Address"') do echo %%I
でバッチリ取得出来ました。
これが一番スマートですね。助かりました!
495:デフォルトの名無しさん
09/12/22 18:53:36
バッチごときでスマートって
しまむらで洋服買って自慢してるようなもんか
496:デフォルトの名無しさん
09/12/22 20:09:54
すっぱい葡萄
497:デフォルトの名無しさん
09/12/22 20:45:16
たぶん
for /f "tokens=15 delims=." %%I in ('ipconfig') do echo %%I
でもいける
498:デフォルトの名無しさん
09/12/22 20:53:10
どんぐりの背比べ
499:デフォルトの名無しさん
09/12/22 21:55:38
すっぱい葡萄
500:デフォルトの名無しさん
09/12/23 14:33:10
skipがどうしたって?
501:デフォルトの名無しさん
09/12/26 12:04:04
フォルダを五十音で分配したいのですが、バッチファイルでできるんでしょうか?
1)具体的にはデジカメで写真を撮影した事を想定してください。
D:\デジカメ写真データ\001.jpg
D:\デジカメ写真データ\002.jpg
・
・
D:\デジカメ写真データ\009.jpg
D:\デジカメ写真データ\010.jpg
2)それを撮影場所ごとに整理します。(ここまでは人間の手でやります。)
D:\デジカメ写真データ\きんかくじ(金閣寺)\001.jpg
D:\デジカメ写真データ\きんかくじ(金閣寺)\002.jpg
D:\デジカメ写真データ\きよみずでら(清水寺)\003.jpg
D:\デジカメ写真データ\きよみずでら(清水寺)\004.jpg
D:\デジカメ写真データ\きよみずでら(清水寺)\005.jpg
D:\デジカメ写真データ\とうだいじ(東大寺)\006.jpg
D:\デジカメ写真データ\ほうりゅじ(法隆寺)\007.jpg
D:\デジカメ写真データ\ほうりゅじ(法隆寺)\008.jpg
D:\デジカメ写真データ\ほうりゅじ(法隆寺)\009.jpg
D:\デジカメ写真データ\ほうりゅじ(法隆寺)\010.jpg
3)ここでバッチファイルをくりっくすると
D:\読み順フォルダ\か行\きんかくじ(金閣寺)\001.jpg
D:\読み順フォルダ\か行\きんかくじ(金閣寺)\002.jpg
D:\読み順フォルダ\か行\きよみずでら(清水寺)\003.jpg
D:\読み順フォルダ\か行\きよみずでら(清水寺)\004.jpg
D:\読み順フォルダ\か行\きよみずでら(清水寺)\005.jpg
D:\読み順フォルダ\た行\とうだいじ(東大寺)\006.jpg
D:\読み順フォルダ\は行\ほうりゅじ(法隆寺)\007.jpg
D:\読み順フォルダ\は行\ほうりゅじ(法隆寺)\008.jpg
D:\読み順フォルダ\は行\ほうりゅじ(法隆寺)\009.jpg
D:\読み順フォルダ\は行\ほうりゅじ(法隆寺)\010.jpg
とやりたいです。
502:デフォルトの名無しさん
09/12/26 12:08:36
D:\読み順フォルダ\か行\きんかくじ(金閣寺)\002.jpg
D:\読み順フォルダ\か行\きよみずでら(清水寺)\003.jpg
D:\読み順フォルダ\か行\きよみずでら(清水寺)\004.jpg
D:\読み順フォルダ\か行\きよみずでら(清水寺)\005.jpg
D:\読み順フォルダ\た行\とうだいじ(東大寺)\006.jpg
D:\読み順フォルダ\は行\ほうりゅじ(法隆寺)\007.jpg
D:\読み順フォルダ\は行\ほうりゅじ(法隆寺)\008.jpg
D:\読み順フォルダ\は行\ほうりゅじ(法隆寺)\009.jpg
D:\読み順フォルダ\は行\ほうりゅじ(法隆寺)\010.jpg
D:\読み順フォルダ\か行\きんかくじ(金閣寺)\002.jpg
D:\読み順フォルダ\か行\きよみずでら(清水寺)\003.jpg
D:\読み順フォルダ\か行\きよみずでら(清水寺)\004.jpg
D:\読み順フォルダ\か行\きよみずでら(清水寺)\005.jpg
D:\読み順フォルダ\た行\とうだいじ(東大寺)\006.jpg
D:\読み順フォルダ\は行\ほうりゅじ(法隆寺)\007.jpg
D:\読み順フォルダ\は行\ほうりゅじ(法隆寺)\008.jpg
D:\読み順フォルダ\は行\ほうりゅじ(法隆寺)\009.jpg
D:\読み順フォルダ\は行\ほうりゅじ(法隆寺)\010.jpg
D:\読み順フォルダ\か行\きんかくじ(金閣寺)\002.jpg
D:\読み順フォルダ\か行\きよみずでら(清水寺)\003.jpg
D:\読み順フォルダ\か行\きよみずでら(清水寺)\004.jpg
D:\読み順フォルダ\か行\きよみずでら(清水寺)\005.jpg
D:\読み順フォルダ\た行\とうだいじ(東大寺)\006.jpg
D:\読み順フォルダ\は行\ほうりゅじ(法隆寺)\007.jpg
D:\読み順フォルダ\は行\ほうりゅじ(法隆寺)\008.jpg
D:\読み順フォルダ\は行\ほうりゅじ(法隆寺)\009.jpg
D:\読み順フォルダ\は行\ほうりゅじ(法隆寺)\010.jpg
503:デフォルトの名無しさん
09/12/26 12:12:03
そこまで人の手でやれよ。
504:デフォルトの名無しさん
09/12/26 12:17:13
写真を分類するソフトなら腐るほどある。
505:デフォルトの名無しさん
09/12/26 12:57:24
ゴミの山(Dドライブ)を見てたらすんごいもの見つけたww
URLリンク(codepad.org)
なんかかなり昔作ったVB風の記述でバッチファイルを吐く言語の
ソースファイルっぽいw
今コンパイラ探してる
506:デフォルトの名無しさん
09/12/26 13:04:17
#EXPAND BatchBasic
Sub Main()
Print("Hello World.")
End Sub
Sub Print(str)
#NATIVE ECHO %str%
End Sub
507:デフォルトの名無しさん
09/12/26 13:06:23
>>501
できるけど、その程度の代物だったら手作業と大して変わらん手間だろ。
508:デフォルトの名無しさん
09/12/26 14:48:26
>>505
batに生産性を求めてどうする
509:デフォルトの名無しさん
09/12/26 20:27:40
>>508
生産性がよくなるんだろ?
510:デフォルトの名無しさん
09/12/26 22:38:09
管理者として実行されてるか?を判定するには?
511:デフォルトの名無しさん
09/12/27 10:14:31
管理者権限でしかアクセスできないフォルダにアクセスしてERRORLEVELで調べる
512:デフォルトの名無しさん
09/12/27 12:08:47
環境変数比較してみたら管理者権限の場合SESSIONNAMEが定義されてなかったので
それで判別できる? (Vista x64で確認)
513:デフォルトの名無しさん
09/12/27 12:27:56
runas /trustlevel:制限しない rundll32 >nul
echo %errorlevel%
ちゃんと動くかは分からない
514:デフォルトの名無しさん
09/12/27 14:35:24
echo>file
dir/q file
515:デフォルトの名無しさん
09/12/27 15:01:58
mklink a a
echo %errorlevel%
516:デフォルトの名無しさん
09/12/27 16:00:42
net user %username% |findstr "*administrators"
MS謹製のwhoamiに権限表示があった気がする
517:デフォルトの名無しさん
09/12/27 17:58:10
>>516
UACの昇格
518:デフォルトの名無しさん
09/12/27 22:26:55
>>512
Vista 32bit x86でも確認したよー
519:デフォルトの名無しさん
09/12/31 18:56:58
rundll32 shell32,IsUserAnAdmin
520:デフォルトの名無しさん
10/01/04 17:02:50
バッチファイルの引数をプラス記号で繋ぐにはどうしたら良いでしょう。例えば、
start "" iexplore "URLリンク(www.google.com)"
ここの %* を、引数の数に合わせて %1+%2+.... とやる方法です。
521:デフォルトの名無しさん
10/01/04 20:39:55
URLリンク(codepad.org)
エスケープには対応してないから使えるのは英字だけなのでよろしく
522:デフォルトの名無しさん
10/01/04 20:42:43
もっとうまい方法がある気がしてならないのでちょっと晒してみる。
----------ここから
set Param=%1
:loop
if not "%2"=="" set Param=%Param%+%2
shift
if not "%2"=="" goto loop
start "" iexplore "URLリンク(www.google.com)"
----------ここまで
細かい事考えなければこんな感じ?
引数を繋ぐスマートな方法を知りたいです。。。
523:デフォルトの名無しさん
10/01/04 20:44:47
つか誰かHttpEscapeってサブルーチンでも作って
524:522
10/01/04 20:48:01
>>521
そっか、先に shift させた方がずっと美しいや。
参考になりましたです。
525:521
10/01/04 21:06:29
いや、スマートにするのは簡単だけど、
URLリンク(codepad.org)
なんかつまんないなあ。^^;
526:522
10/01/04 21:15:25
>>525
これこれ、こーゆーの求めてました!
ありがとうございました >>521 、きっかけをくれた >>520 にも感謝。
527:520
10/01/05 00:22:01
>>521, 522
お二人ともありがとうございました。
特に >>525 が素晴しく、大変勉強になりました!!
528:デフォルトの名無しさん
10/01/05 01:05:21
そもそもぐぐるなら置換不要
529:デフォルトの名無しさん
10/01/06 18:02:19
そうなの?
530:デフォルトの名無しさん
10/01/10 19:19:39
質問なんですが、
例としてimg001、img002、img003というファイルがあったとして
imgに当てはまるものを一気に削除するというスクリプトはあるでしょうか?
531:デフォルトの名無しさん
10/01/10 19:36:16
delete img*
532:デフォルトの名無しさん
10/01/10 19:47:41
>>531
erase img*
533:デフォルトの名無しさん
10/01/10 20:56:26
>>531-532
「imgに当てはまるもの」→ del img
534:530
10/01/11 01:04:30
>>531-533
ありがとうございます。
delの場合は del img*でいけました。
535:デフォルトの名無しさん
10/01/11 01:16:52
>>531-533
おまえら質問に答えてない
>>530
だれかが作ればある
536:デフォルトの名無しさん
10/01/11 07:58:08
修飾子 %~$PATH: の使い方について質問があります。
引数のファイルを %PATH% から検索し、エクスプローラーで開く
バッチファイルを書いてみました。
---- open.bat ----
set x=%~$PATH:1
if %x% == "" goto eof
start "" explorer.exe /select,%x%
----
使用法: open.bat explorer.exe / open.bat cmd.exe / open.bat msconfig.exe
ここで、拡張子を .exe に決め打ちし、下記が動作するようにするには
どうすれば良いでしょうか。
open.bat explorer / open.bat cmd / open.bat msconfig
537:デフォルトの名無しさん
10/01/11 09:31:51
下記のようにしてとりあえず希望の動作が出来るようになりました。
もう少し一般的な方法があれば教えて下さい。
---- open_mod.bat ----
set x=%~$PATH:1
if not "%x%" == "" goto open
for %%i in (%1.exe) do (
set x=%%~$PATH:i
)
if not exist "%x%" exit
:open
start "" explorer.exe /select,%x%
----
538:デフォルトの名無しさん
10/01/11 14:54:18
for %%i in (%1.exe) do for %%j in (%~$PATH:1 %%~$PATH:i) do start "" explorer.exe /select,%%j
539:デフォルトの名無しさん
10/01/12 18:41:21
for /f %%i in ('where %1') do start "" explorer.exe /select,%%i
540:536
10/01/13 00:43:51
>>538, 539
どちらもすごいです!! たいへん勉強になりました。
541:デフォルトの名無しさん
10/01/13 10:54:58
>>539
これのうち、 'where %1' の部分が良く理解できません。
解説のあるウェブサイトを紹介してもらえないでしょうか。
542:デフォルトの名無しさん
10/01/13 13:14:07
URLリンク(www.atmarkit.co.jp)
543:デフォルトの名無しさん
10/01/13 23:29:11
>>542
やっと理解しました。where は OS のコマンドで、
また for /f in %%変数 (...) の括弧内ではコマンドが使えるのですね。
情報ありがとうございました。
544:デフォルトの名無しさん
10/01/14 23:23:03
%1 %2 ... は%*
%2 ... をまとめて取り出せないかな
バラして組み立てるしかないかな
545:デフォルトの名無しさん
10/01/14 23:26:37
shiftすりゃいいんじゃねーの
546:デフォルトの名無しさん
10/01/15 02:34:52
shift
echo %*
547:デフォルトの名無しさん
10/01/15 07:02:48
これだと %1 も出てくるな…
548:デフォルトの名無しさん
10/01/15 09:28:36
shift /2
549:デフォルトの名無しさん
10/01/15 13:11:40
for /f "tokens=1*"でとれるんじゃねーの
550:デフォルトの名無しさん
10/01/15 13:48:41
shiftじゃできないんじゃねーの
551:デフォルトの名無しさん
10/01/15 19:42:14
for /f "tokens=1*"じゃできないんじゃねーの
552:デフォルトの名無しさん
10/01/15 20:31:47
for /f "tokens=1*" %%i in (%*) do echo %j
553:デフォルトの名無しさん
10/01/15 21:44:02
for /f "tokens=1*" %%i in ("%*") do echo %j
だろ
554:デフォルトの名無しさん
10/01/16 11:29:18
この言語はforの使い方がおかしい
555:デフォルトの名無しさん
10/01/16 15:33:31
ワイルドカードを展開するコマンドにforという名前をつけてしまったのがそもそもの間違い。
556:デフォルトの名無しさん
10/01/16 16:13:29
for /f "tokens=1*" %i in ("1 2 3 4") do echo %j
2 3 4
ほれ
557:デフォルトの名無しさん
10/01/16 17:16:36
for /f "tokens=1*" %i in (""1 2" "3 4"") do echo %j
2" "3 4"
ほれ
558:デフォルトの名無しさん
10/01/18 15:10:32
set a=%*
echo !a:%1=!
559:デフォルトの名無しさん
10/01/19 10:25:24
@echo off
copy /y E:\Program\TAB_Browser\DonutRAPT\Default.dfg "E:\Back_Up\Donut_RAPT_Default"
@echo
exit
今使ってるバッチファイル(バックアップファイル作成)をまんま↑に載せました。
別段支障は無いのですが、↑だと、1ファイルのバックアップしか出来ませんので、
万一、空ファイルが上書きされてしまった場合、痛いです。
(上記のバッチはドーナツ派は何となくピンと来てくれると思いますが)
そこで、そのリスクを減らす為に、例えば、バッチ処理する度に、ランダムに、例えば・・
Default1.dfg、Default2.dfg、Default3.dfg
のいずれかのファイル名でE:\Back_Up\Donut_RAPT_Defaultフォルダにバックアップをするには
どのようにすれば宜しいでしょうか?
560:デフォルトの名無しさん
10/01/19 11:39:09
ランダムの意味わかってないだろ
561:559
10/01/19 11:52:46
1~3までの数字をアットランダムに付けたいのですが・・。
Default1.dfgというファイル名での保存が、複数回続いても構いません。
(きっちり、1→2→3という順番で、バッチ処理する度にファイル名が変わってくれなくて構わないです)
562:デフォルトの名無しさん
10/01/19 14:36:05
set /a random=%random%%%3+1
copy /y E:\Program\TAB_Browser\DonutRAPT\Default.dfg "E:\Back_Up\Default%random%.dfg"
563:559
10/01/19 15:29:47
>>562
ありがとうございます!
コピー先は直しましたが、まさに目的は叶いました。
本当、感謝です!
564:デフォルトの名無しさん
10/01/19 18:15:40
>>560
>>560
565:デフォルトの名無しさん
10/01/19 19:39:38
>>564
566:デフォルトの名無しさん
10/01/20 13:48:59
サイクリック版作りたかったら作ってみ
567:デフォルトの名無しさん
10/01/23 03:00:27
>>560
>>559の例の場合は3本のくじからの無作為抽出ってことだろ?
ランダムって表現で間違っちゃいない
っつーか、>>562が物語ってるじゃん↓
> set /a random=%random%%%3+1
568:デフォルトの名無しさん
10/01/23 21:44:08
>>567
560は562が書かれる前にレスの内容がわかるエスパーなんですね。
569:デフォルトの名無しさん
10/01/24 05:15:14
別に560の前の時点で、環境変数(%random%)を使えば良いのは判る訳で
そこへ560の質問の意味が解からん
570:デフォルトの名無しさん
10/01/24 12:43:25
iPod nano を購入しようと思っているのですが、nano のランダム再生について質問です。
現在使っている他メーカーのMP3プレイヤーのランダム再生はどうやら、
再生リストの中からランダムで選び出した曲を決まった順番で再生
しているらしいのです。
例えばフォルダの中にA,B,C,D,Eの5曲がある場合にランダム再生を実行すると、
自動的にA,C,Eを選び出し(ここは流石にランダムで選んでるようです)、
以降、A,C,E,A,C,E,...のように、同じ曲ばかりを繰り返します。
実際に少ない曲数で試したことはないのですが、
同じフォルダの中でランダム再生をしているとそのうち、
次に再生される曲がわかるようになるのでたぶん間違いないです。
で、iPod nano のランダム再生はどのような再生方法なのかに興味があります。
理想は、
・一度流した曲は、再生リスト内の曲を全て再生するまでは再生しない。
というものです。
フォルダの中にA,B,C,D,Eの5曲がある場合、
最初にBを再生した後は、次に来る曲はA,C,D,Eのいずれかで、
次にAが選択された場合は、次に来る曲はC,D,Eのいずれか、といった再生法を望んでいます。
iPod nano の購入の参考にしたいので、
詳しくわかる方いましたらよろしくお願いします。
571:デフォルトの名無しさん
10/01/24 12:44:52
iTunesとiPodの場合「ランダム」ではなく「シャッフル」と呼び、
その呼び名の通り曲順をシャッフルして再生する機能になります。
1曲ごとに再生する曲を対象全体からランダムに選ぶのではなく、
最初に対象全体をシャッフルして混ざったリストを作りそれを順番に再生する、
つまりトランプをシャッフルしてから一枚づつめくっていく様な感じになり、
あなたの希望の様に
「一度流した曲は、再生リスト内の曲を全て再生するまでは再生しない。」
と言う状態になります。
iTunes上でプレイリストを選択した状態で左下のシャッフルボタンを
押してみると、リスト内でシャッフルしてそれを順に再生している事が
よく分かると思います。
(その際画面表示のソート順を通常なら左端にある曲順の数字欄に
しておかないとシャッフルされる様子が見れません。曲の上部に
「名前」や「アーティスト」、「アルバム」等と書いてある左端の部分を
クリックして三角が出ている状態です。その灰色のバー部分の
どこをどうクリックするかで画面上の並び順が変わります。)
この様に「シャッフルされたリストを作る」と言う機能なので、そのリスト内で
曲を前や後ろに飛ばしてもまた同じ部分では同じ順番で再生されます。
シャッフル機能を切って入れ直すか、最初の曲から前に飛ばしたり、
最後の曲を終わりまで再生したりすればシャッフルし直されます。
自分は普段まずシャッフル再生はしないので、今ちょっと試してみた
結果を見て回答したので、何か間違いがあるかもしれません。